android

Error al inflar la clase android.support.constraint.ConstraintLayout



(3)

Estaba trabajando en una aplicación de Android Studio cuando me encontré con este error.

Process: com.example.visualizercopy, PID: 28098 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.visualizercopy/io.esense.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.constraint.ConstraintLayout at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2812) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6317) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762) Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.constraint.ConstraintLayout Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.constraint.ConstraintLayout Caused by: java.lang.ClassNotFoundException: Didn''t find class "android.support.constraint.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.example.visualizercopy-1/base.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.visualizercopy-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.visualizercopy-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) 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 com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:424) at android.app.Activity.setContentView(Activity.java:2471) at io.esense.MainActivity.onCreate(MainActivity.java:41) at android.app.Activity.performCreate(Activity.java:6757) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2704) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2812) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6317) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872) 2019-06-23 16:25:42.234 28098-28098/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Este es mi gradle:

apply plugin: ''com.android.application'' android { compileSdkVersion 29 defaultConfig { applicationId "com.example.visualizercopy" minSdkVersion 23 targetSdkVersion 29 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android-optimize.txt''), ''proguard-rules.pro'' } } } dependencies { implementation fileTree(dir: ''libs'', include: [''*.jar'']) implementation ''androidx.appcompat:appcompat:1.1.0-beta01'' implementation ''com.jjoe64:graphview:4.2.2'' implementation ''com.android.support.constraint:constraint-layout:2.0.0-beta1'' testImplementation ''junit:junit:4.12'' androidTestImplementation ''com.android.support.test:runner:1.0.2'' androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.2'' }

Esta es la etiqueta de diseño de restricción en mi archivo xml

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/PLAY_PARENT" android:padding="0dp" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:layout_editor_absoluteY="81dp">

He examinado mi error en este sitio y en google, y la respuesta común es agregar la compile ''com.android.support.constraint:constraint-layout:1.0.2'' , sin embargo, la compilación ahora es obsoleta, y cuando reemplazo compilar con implementación y lo cambié a la versión más reciente ( ''com.android.support.constraint:constraint-layout:2.0.0-beta1'' ) Todavía me encuentro con el mismo error. ¿Cómo puedo arreglar esto?


Estás utilizando paquetes de androidX. Por lo tanto, debe migrar toda la biblioteca android.support con androidX.

Entonces reemplace debajo de la línea en gradle,

implementation ''com.android.support.constraint:constraint-layout:2.0.0-beta1''

Con este,

implementation ''androidx.constraintlayout:constraintlayout:1.1.2''

Referencia here


Lo descubrí, tuve que actualizar las etiquetas android.support.constraint.ConstraintLayout a androidx.constraintlayout.widget.ConstraintLayout en mi diseño XML.


Si está usando los paquetes de androidX o desea usarlos para su proyecto, entonces debe migrar su proyecto a androidX . Para eso debes seguir los siguientes pasos:

1) En Android Studio, simplemente Refactor-> Migrate to AndroidX a Refactor-> Migrate to AndroidX para migrar su proyecto y allí puede hacer una copia de seguridad de su proyecto si ocurre algún problema al migrar el proyecto.

Después de eso, sus dependencias tendrán paquetes androidX automáticamente.

Lectura adicional: Here