4
votes

Dépendances AndroidX et XML provoquant un crash

J'ai récemment mis à jour vers Android 3.3, maintenant beaucoup de dépendances sont changées vers AndroidX . Ce qui provoque le blocage de l'application, ainsi que les modifications de dépendance doivent également être effectuées en XML . J'ai rencontré un problème similaire avec CoordinatorLayout . J'ai cherché stackoverflow, il n'y a pas beaucoup de questions sur ce sujet, car AndroidX est relativement nouveau. J'ai donc ressenti le besoin de poser une question à ce sujet.

Où puis-je obtenir du XML pour FloatingActionButton même manière pour tout le XML y a-t-il un site Web où nous pouvons obtenir le XML pour les dépendances androidX.

XML

dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation project(':androidunsplash')
        implementation 'com.squareup.picasso:picasso:2.71828'
        implementation("com.squareup.okhttp3:okhttp:3.12.0")
        implementation 'androidx.recyclerview:recyclerview:1.0.0'
        implementation 'com.google.code.gson:gson:2.8.5'
    
        implementation 'com.google.android.material:material:1.0.0'
        implementation 'androidx.appcompat:appcompat:1.0.2'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
    }

Crash Logcat

android.view.InflateException: ligne de fichier XML binaire n ° 15: ligne de fichier XML binaire n ° 15: erreur de gonflage de la classe android.support.design.widget.FloatingActionButton Causée par: android.view.InflateException: ligne de fichier XML binaire n ° 15: erreur de gonflage class android.support.design.widget.FloatingActionButton Causé par: java.lang.ClassNotFoundException: classe "android.support.design.widget.FloatingActionButton" sur le chemin: DexPathList [[fichier zip "/ data / app / com .kc.unsplashdemo-kTZQS-p2845Xly7PcTuAmg == / base.apk ", fichier zip" /data/app/com.kc.unsplashdemo-kTZQS-p2845Xly7PcTuAmg==/split_lib_dependencies_apk.apk "fichier

dépendances

 <android.support.design.widget.FloatingActionButton


7 commentaires

Avez-vous vérifié ce doc developer.android.com/jetpack/androidx/migrate ?


oui, cela ne couvre que les dépendances, pas XML.


Ouais, en gros, vous devez changer tous vos anciens composants appcompat en composants androidx. Lorsque vous migrez vers Androidx


Je comprends que j'ai changé les dépendances dans gradle, mais l'application plante. J'ai besoin d'un lien ou de toute documentation de tout le XML androidX. Ou tout moyen automatique de convertir tout XML en androidX. J'ai utilisé les outils d'Android Studio> migrer vers AndrodiX. Cela ne semble pas fonctionner pour XML


Par exemple à partir d'Androidx, bouton d'action flottant. Migré de android.support.design.widget.FloatingActionButton vers com.google.android.material.floatingactionbutton.FloatingAct‌​ionButton . Ou vous pouvez également réfracter l'ensemble de votre projet via le menu de navigation.


Dépendance Android X déjà ajoutée. J'ai mis à jour ma question et publié également les dépendances.


Avez-vous activé jetifier ?


3 Réponses :


3
votes

L'ajout d'une dépendance pour androidX ne suffit pas. Pour migrer vos composants vers celui d'AndroidX, vous devez les modifier manuellement. Bien que la recherche de tous les nouveaux packages puisse prendre du temps, je peux vous suggérer d'essayer de supprimer l'ancien nom dans votre xml, puis de commencer à en taper un nouveau. Si des dépendances androidX sont vraiment ajoutées à votre projet, après avoir commencé à taper, Android Studio vous proposera un nouveau nom de package. entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

De plus, vous pouvez rechercher des informations supplémentaires ici


0 commentaires

10
votes

Vous pouvez trouver le mappage des anciennes dépendances android contre les nouvelles qui utilisent androidx ici

Vous y trouverez ceci pour la dépendance que vous recherchez:

com.google.android.material.floatingactionbutton.FloatingActionButton

Lors du remplacement de quelque chose sur une mise en page, je suggérerais d'utiliser ctrl + r pour le mettre à jour dans l'ensemble du projet et vous faire gagner du temps, car il y a en effet pas mal de travail manuel à faire lors de la migration vers androidx.


0 commentaires

1
votes

Il semble que vous rencontriez un problème lorsque vous avez mis à niveau Android Studio vers la version 3.3. Pour résoudre ce problème, vous pouvez effectuer les opérations suivantes:
a) Si vous avez migré votre code vers Androidx, vérifiez le gradle.properties dans l'application si ces deux lignes ne sont pas là:

android.useAndroidX=true
android.enableJetifier=true

puis allez dans Refactor -> Migrate to Androidx dans le studio Android qui migre votre application vers Androidx, y compris les fichiers xml. Cette option affichera les modifications dans le terminal ci-dessous. Acceptez ces modifications pour migrer vers Androidx.

b) Si cela ne fonctionne pas et que vous obtenez toujours cette erreur, remplacez-le

android.support.design.widget.FloatingActionButton

avec

com.google.android.material.floatingactionbutton.FloatingActionButton

qui est extrait du fichier de mappage fourni par google qui mappe les classes de bibliothèque de support antérieures aux classes de package androidx: Migration vers Androidx


0 commentaires