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
3 Réponses :
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.
De plus, vous pouvez rechercher des informations supplémentaires ici
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.
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
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
verscom.google.android.material.floatingactionbutton.FloatingActionButton
. 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
?