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.ConstraintLayout
a las dependencias:dependencies { // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout implementation "androidx.constraintlayout:constraintlayout:1.1.3" }
Está disponible el
mavenCentral()
.fuente
constraintlayout
embargo, 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.ConstraintLayout
fuente
Si después de agregar mavenCentral () como un repositorio en su archivo Gradle y cambiar
androidx.constraintlayout.ConstraintLayout
aandroidx.constraintlayout.widget.ConstraintLayout
no 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.ConstraintLayout
en 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.ConstraintLayout
fuente
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.ConstraintLayout
en vez de
<android.support.constraint.ConstraintLayout
y
<androidx.constraintlayout.widget.Barrier
en vez de
<android.support.constraint.Barrier
fuente
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) ... 25
Siguiendo 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