web-dev-qa-db-fra.com

Erreur de gonflage de la classe androidx.constraintlayout.ConstraintLayout après la migration vers androidx

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)
16
KevinMo

Je résous mon problème en changeant toutes les occurrences de 

androidx.constraintlayout.ConstraintLayout

à 

androidx.constraintlayout.widget.ConstraintLayout

24
KevinMo

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().

19
Martin Zeitler

J'ai le même problème après:

  • bibliothèque de support de migration vers androidx;
  • incrémenter targetSdkVesrsion à 29;

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.

2
Tapa Save

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.

1
neer17

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

1
Sakthi Vel

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

1
amir.ashrafi

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

0
Mirwise Khan

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.

0
Abhas Arya

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.

0
Bishoy Abd

yepp. mavenCentral () et les dépendances correctes résolvent mes mêmes problèmes

0
Ya Si

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.

0
Akshay Chopra