Chaque fois que mon application se bloque car elle ne trouve pas Landroidx/constraintlayout/widget/R $ styleable dans classpath. J'ai essayé de reconstruire, d'invalider le cache mais cela me donne toujours la même erreur lors de l'exécution.
J'ai essayé les deux versions 1.1.2 et 1.1.3. Et intéressant: lorsque vous utilisez 1.1.3 androidX Jetifier force simplement l'utilisation de 1.1.2 comme vous pouvez le voir dans le rapport Gradle
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:334)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:651)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:794)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:734)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:496)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:427)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.Java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.Java:141)
at com.github.sharetaxi.LoginActivity.onCreate(LoginActivity.kt:24)
at Android.app.Activity.performCreate(Activity.Java:7050)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1214)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2809)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2931)
at Android.app.ActivityThread.-wrap11(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1620)
at Android.os.Handler.dispatchMessage(Handler.Java:105)
at Android.os.Looper.loop(Looper.Java:176)
at Android.app.ActivityThread.main(ActivityThread.Java:6701)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:246)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:783)
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)
at Java.lang.reflect.Constructor.newInstance0(Native Method)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:334)
at Android.view.LayoutInflater.createView(LayoutInflater.Java:651)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:794)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:734)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:496)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:427)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.Java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.Java:141)
at com.github.sharetaxi.LoginActivity.onCreate(LoginActivity.kt:24)
at Android.app.Activity.performCreate(Activity.Java:7050)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1214)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2809)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2931)
at Android.app.ActivityThread.-wrap11(Unknown Source:0)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1620)
at Android.os.Handler.dispatchMessage(Handler.Java:105)
at Android.os.Looper.loop(Looper.Java:176)
at Android.app.ActivityThread.main(ActivityThread.Java:6701)
at Java.lang.reflect.Method.invoke(Native Method)
at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:246)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:783)
Caused by: Java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.widget.R$styleable" on path: DexPathList
J'utilise Android Studio 3. avec un nouveau Android plugin gradle. Et dans mon gradle.properties, j'ai activé jetifier:
Android.useAndroidX=true
Android.enableJetifier=true
La dépendance s'est résolue comme suit:
> Task :app:dependencyInsight
androidx.constraintlayout:constraintlayout:1.1.2
variant "default" [
org.gradle.status = release (not requested)
Requested attributes not found in the selected variant:
com.Android.build.api.attributes.BuildTypeAttr = debug
org.gradle.usage = Java-api
com.Android.build.gradle.internal.dependency.AndroidTypeAttr = Aar
org.jetbrains.kotlin.platform.type = androidJvm
]
Selection reasons:
- Was requested
- Selected by rule : ENABLE_JETIFIER is enabled
- By constraint : debugRuntimeClasspath uses version 1.1.2
com.Android.support.constraint:constraint-layout:1.1.3 -> androidx.constraintlayout:constraintlayout:1.1.2
+--- debugCompileClasspath
\--- project :general
\--- debugCompileClasspath
(*) - dependencies omitted (listed previously)
A web-based, searchable dependency report is available by adding the --scan option.
En XML, cela ressemble à ceci:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/login_bg"
Android:orientation="vertical">
...
</androidx.constraintlayout.widget.ConstraintLayout>
MISE À JOUR:
Enfin j'ai dû utiliser la version alpha de ConstraintLayout 2.0 car aucune autre solution n'a été trouvée
Il semble que vous ayez com.Android.support.constraint
comme dépendance et non androidx.constraintlayout
.
Pour moi en train de changer
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
à
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
résolu le problème.
en dehors de l'utilisation
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
J'ai également dû reconstruire le projet dans Android Studio pour le faire fonctionner
ce qui a aidé dans mon cas était simplement de suivre les recommandations de l'EDI - il s'agissait non seulement de mettre à jour la dépendance constraint
, mais aussi toutes les autres androidx
.
En guise de remarque - je suis tombé dessus juste au démarrage d'un exemple d'application à partir de Android Générateur Studio sur Android Studio 3.3.