Je viens d'effectuer une migration vers Android via l'option de menu Refactor -> Refactor to AndroidX
d'Android Studio.
Je reçois l'erreur suivante:
Android.view.InflateException: ligne de fichier XML binaire n ° 2: ligne de fichier XML binaire n ° 2: erreur lors du gonflage de la classe androidx.constraintlayout.ConstraintLayout
Une idée?
Trace de la pile:
2018-10-19 00:25:58.128 28131-28131/com.midounoo.midounoo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.midounoo.midounoo, PID: 28131
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.midounoo.midounoo/com.midounoo.midounoo.Base.MainActivity}: Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2724)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2789)
at Android.app.ActivityThread.-wrap12(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1527)
at Android.os.Handler.dispatchMessage(Handler.Java:110)
at Android.os.Looper.loop(Looper.Java:203)
at Android.app.ActivityThread.main(ActivityThread.Java:6255)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1063)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:924)
Caused by: Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
Caused by: Android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
Caused by: Java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.ConstraintLayout" on path: DexPathList[[Zip file "/data/app/com.midounoo.midounoo-2/base.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_dependencies_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_0_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_1_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_2_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_3_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_4_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_5_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_6_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_7_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_8_apk.apk", Zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.midounoo.midounoo-2/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:380)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:609)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:787)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:727)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:495)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:426)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:377)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.Java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.Java:140)
at com.midounoo.midounoo.Base.MainActivity.onCreate(MainActivity.Java:43)
at Android.app.Activity.performCreate(Activity.Java:6666)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1118)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2677)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2789)
at Android.app.ActivityThread.-wrap12(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1527)
at Android.os.Handler.dispatchMessage(Handler.Java:110)
at Android.os.Looper.loop(Looper.Java:203)
at Android.app.ActivityThread.main(ActivityThread.Java:6255)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1063)
Je résous mon problème en changeant toutes les occurrences de
androidx.constraintlayout.ConstraintLayout
à
androidx.constraintlayout.widget.ConstraintLayout
ajoutez androidx.constraintlayout.ConstraintLayout
aux dépendances:
dependencies {
// https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
le référentiel est mavenCentral()
.
J'ai le même problème après:
J'utilise aussi:
implementation "uk.co.chrisjenx:calligraphy:2.3.0"
J'ai essayé tous les messages de cette question, mais aucun succès.
Je résous le problème en ajoutant une chaîne .disableCustomViewInflation()
à Calligraphy init:
@Override
public void onCreate() {
super.onCreate();
// ...
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Sans-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.disableCustomViewInflation() // <----- this fix
.build());
// ...
}
J'espère que la prochaine version de Calligraphy (Christopher Jenkins, merci pour votre excellent travail) le corrigera également.
Si, après avoir ajouté mavenCentral () en tant que référentiel dans votre fichier Gradle et que changer androidx.constraintlayout.ConstraintLayout
en androidx.constraintlayout.widget.ConstraintLayout
ne résolve pas votre problème, essayez de faire Invalider le cache et redémarrer depuis le menu Fichier. Cela a fonctionné pour moi.
build.gradle => vérifier la version des dépendances
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
changer
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
résolu le problème
pour moi ce problème résolu quand changer le grade
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
à
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
synchroniser puis nettoyer le projet
c'est si bête
J'ai eu le même problème, je l'ai résolu comme suit:
Dans vos dépendances si vous avez ajouté
implementation 'androidx.constraintlayout:constraintlayout:1.x.x'
c'est correct
mais dans votre fichier de mise en page XML, vous devez utiliser le widget comme
androidx.constraintlayout.widget.ConstraintLayout
J'ai copié et collé une balise ConstraintLayout existante à partir du fichier xml, qui était à l'origine du problème pour moi. Supprimer et rajouter les balises ConstraintLayout dans AndroidStudio à partir de zéro a résolu le problème pour moi.
J'ai mis à jour la dépendance, mais cela n'a pas résolu l'erreur. Ensuite, j'ai fait un projet propre et construit et cela fonctionne maintenant.
yepp. mavenCentral () et les dépendances correctes résolvent mes mêmes problèmes
J'ai eu une erreur similaire.
Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MainActivity}: Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2757)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2818)
at Android.app.ActivityThread.-wrap12(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1557)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:163)
at Android.app.ActivityThread.main(ActivityThread.Java:6393)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:933)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:823)
Caused by: Android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: Android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: Java.lang.reflect.InvocationTargetException
at Java.lang.reflect.Constructor.newInstance0(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:430)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:652)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:812)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:752)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:499)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:430)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:377)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.Java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.Java:140)
at com.myapp.MainActivity.onCreate(MainActivity.Java:23)
at Android.app.Activity.performCreate(Activity.Java:6858)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1119)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2710)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2818)
at Android.app.ActivityThread.-wrap12(ActivityThread.Java)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1557)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:163)
at Android.app.ActivityThread.main(ActivityThread.Java:6393)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:933)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:823)
Caused by: Java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/constraintlayout/widget/R$styleable;
at androidx.constraintlayout.widget.ConstraintLayout.init(ConstraintLayout.Java:590)
at androidx.constraintlayout.widget.ConstraintLayout.<init>(ConstraintLayout.Java:567)
... 23 more
Caused by: Java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.widget.R$styleable" on path: DexPathList[[Zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-1/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:380)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)
... 25
Suite aux recommandations:
add androidx.constraintlayout.ConstraintLayout to the dependencies:
dependencies {
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
Et le référentiel mavenCentral ().
Travaille pour moi. Je pourrais compiler l'APK.
Après avoir cliqué sur Refactor -> Migrate to AndroidX
, assurez-vous que toutes vos dépendances dans le build.gradle (Module: app) sont marquées comme la version la plus récente.
Si ce n'est pas le cas, la dépendance apparaît en surbrillance jaune et vous pouvez la changer en survolant la souris.
Deuxièmement, remplacez la balise ConstraintLayout dans tous les fichiers de présentation XML par
androidx.constraintlayout.widget.ConstraintLayout
Pour une option plus sûre, nettoyez votre projet et synchronisez-le à nouveau après les étapes ci-dessus.