Acabo de realizar una migración a androidx a través de la opción de menú de Android Studio Refactor -> Refactor to AndroidX
Recibo el siguiente error:
android.view.InflateException: línea de archivo XML binario n. ° 2: línea de archivo XML binario n. ° 2: error al inflar la clase androidx.constraintlayout.ConstraintLayout
¿Alguna idea?
Stacktrace:
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)

Respuestas:
Resuelvo mi problema cambiando todas las apariciones de
a
fuente
Agregue
androidx.constraintlayout.widget.ConstraintLayouta las dependencias:dependencies { // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout implementation "androidx.constraintlayout:constraintlayout:1.1.3" }Está disponible el
mavenCentral().fuente
constraintlayoutembargo, el segundo no comienza con mayúsculasC. Correcto:'androidx.constraintlayout:constraintlayout:1.1.3'Tuve el mismo problema, lo resolví de la siguiente manera:
En tus dependencias si has agregado
implementation 'androidx.constraintlayout:constraintlayout:1.x.x'eso es correctopero en su archivo de diseño xml debe usar el widget como
androidx.constraintlayout.widget.ConstraintLayoutfuente
Si después de agregar mavenCentral () como un repositorio en su archivo Gradle y cambiar
androidx.constraintlayout.ConstraintLayoutaandroidx.constraintlayout.widget.ConstraintLayoutno resolvió su problema, intente hacer Invalidar caché y reinicie desde el menú del archivo. Funcionó para mí.fuente
build.gradle => comprobar la versión de las dependencias
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'cambiar
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'resuelve el problema
fuente
asegúrese de que su proyecto migre a androidx por completo, en mi caso encontré:
<android.support.constraint.ConstraintLayouten vez de
<androidx.constraintlayout.widget.ConstraintLayout¡Así que cámbielo y mi problema se solucionó!
fuente
Tengo el mismo problema después de:
Yo también uso:
implementation "uk.co.chrisjenx:calligraphy:2.3.0"Probé todas las publicaciones de esta pregunta, pero ninguna fue exitosa.
Lo soluciono agregando una cadena
.disableCustomViewInflation()a 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()); // ... }Espero que el próximo lanzamiento de Calligraphy (Christopher Jenkins, gracias por su gran trabajo) lo solucione por dentro también.
fuente
Después de hacer clic en
Refactor -> Migrate to AndroidX, asegúrese de que todas sus dependencias en build.gradle (Módulo: aplicación) estén marcadas con la versión más reciente.Si no es así, la dependencia aparecerá resaltada en amarillo y puede cambiarla colocando el mouse sobre ella.
En segundo lugar, cambie la etiqueta ConstraintLayout en todos los archivos de diseño XML a
Para una opción más segura, limpie su proyecto y sincronícelo nuevamente después de los pasos anteriores.
fuente
Asegúrese de haber agregado la dependencia para el diseño de restricciones
dependencies { implementation "androidx.constraintlayout:constraintlayout:1.1.3" }y he realizado los cambios en
<androidx.constraintlayout.widget.ConstraintLayout instead of <android.support.constraint.ConstraintLayoutfuente
Copié y pegué una etiqueta ConstraintLayout existente del xml, lo que me estaba causando el problema. Simplemente eliminar y volver a agregar las etiquetas ConstraintLayout en AndroidStudio desde cero solucionó el problema.
fuente
Asegúrate de cambiar a
<androidx.constraintlayout.widget.ConstraintLayouten vez de
<android.support.constraint.ConstraintLayouty
<androidx.constraintlayout.widget.Barrieren vez de
<android.support.constraint.Barrierfuente
Tuve este problema con Android Studio 4.0. Usé android studio 4.0 durante un par de días sin problemas. Aparentemente de la nada, la vista del diseñador dejó de funcionar. Solo pude solucionar esto desinstalando Android Studio e instalando la versión más reciente de Android Studio.
fuente
yepp. mavenCentral () y las dependencias correctas resuelven mis mismos problemas
fuente
Tuve un error similar.
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) ... 25Siguiendo las recomendaciones:
add androidx.constraintlayout.ConstraintLayout to the dependencies: dependencies { implementation "androidx.constraintlayout:constraintlayout:1.1.3" }Y el repositorio mavenCentral ().
Funciona para mi. Podría compilar el APK.
fuente
Actualicé la dependencia, pero no resolvió el error. Luego hice un proyecto limpio y construí y ahora está funcionando.
fuente
Me refiero a encontrar el mapeo y usarlo en todo el proyecto.
fuente
cambie la dependencia del diseño de la restricción a la implementación 'androidx.constraintlayout: constraintlayout: 2.0.2'
fuente