Saya baru saja melakukan migrasi ke androidx melalui opsi menu Android Studio Refactor -> Refactor to AndroidX
Saya mendapatkan kesalahan berikut:
android.view.InflateException: Baris file XML biner # 2: Baris file XML biner # 2: Kesalahan menggembungkan kelas androidx.constraintlayout.ConstraintLayout
Ada ide?
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)
Jawaban:
Saya memecahkan masalah saya dengan mengubah semua kemunculan
untuk
sumber
Tambahkan
androidx.constraintlayout.widget.ConstraintLayout
ke dependensi:dependencies { // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout implementation "androidx.constraintlayout:constraintlayout:1.1.3" }
Ini tersedia di
mavenCentral()
.sumber
constraintlayout
tidak dimulai dengan huruf besarC
. Yang benar:'androidx.constraintlayout:constraintlayout:1.1.3'
Saya memiliki masalah yang sama, saya menyelesaikannya sebagai berikut:
Dalam ketergantungan Anda jika Anda telah menambahkan
implementation 'androidx.constraintlayout:constraintlayout:1.x.x'
itu betultetapi dalam file layout xml Anda, Anda harus menggunakan widget sebagai
androidx.constraintlayout.widget.ConstraintLayout
sumber
Jika setelah menambahkan mavenCentral () sebagai repositori dalam file Gradle Anda dan mengubah
androidx.constraintlayout.ConstraintLayout
keandroidx.constraintlayout.widget.ConstraintLayout
tidak menyelesaikan masalah Anda, coba lakukan Invalidate cache dan mulai ulang dari menu file. Itu berhasil untuk saya.sumber
build.gradle => periksa versi dependensi
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
Untuk mengganti
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
memecahkan masalah
sumber
Saya mengalami masalah yang sama setelah:
Saya juga menggunakan:
implementation "uk.co.chrisjenx:calligraphy:2.3.0"
Saya mencoba semua posting dari pertanyaan ini, tetapi tidak ada yang berhasil.
Saya memperbaikinya dengan menambahkan satu string
.disableCustomViewInflation()
ke 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()); // ... }
Saya berharap rilis Kaligrafi berikutnya (Christopher Jenkins terima kasih atas kerja bagus Anda) akan memperbaikinya juga di dalam.
sumber
pastikan proyek Anda bermigrasi ke androidx sepenuhnya, Dalam kasus saya, saya menemukan:
<android.support.constraint.ConstraintLayout
dari pada
<androidx.constraintlayout.widget.ConstraintLayout
Jadi ubahlah dan masalah saya teratasi!
sumber
Setelah mengklik
Refactor -> Migrate to AndroidX
, Pastikan semua dependensi Anda di build.gradle (Module: app) ditandai ke versi terbaru.Jika tidak, ketergantungan akan muncul dalam warna kuning yang disorot dan Anda dapat mengubahnya dengan mengarahkan mouse ke atasnya.
Kedua, Ubah tag ConstraintLayout di semua file tata letak XML menjadi
Untuk opsi yang lebih aman, bersihkan proyek Anda dan sinkronkan kembali setelah langkah-langkah di atas.
sumber
Pastikan Anda telah menambahkan ketergantungan untuk tata letak batasan
dependencies { implementation "androidx.constraintlayout:constraintlayout:1.1.3" }
dan telah melakukan perubahan pada
<androidx.constraintlayout.widget.ConstraintLayout instead of <android.support.constraint.ConstraintLayout
sumber
Saya menyalin dan menempelkan tag ConstraintLayout yang ada dari xml, yang menyebabkan masalah bagi saya. Cukup menghapus, dan menambahkan kembali tag ConstraintLayout di AndroidStudio dari awal telah memperbaiki masalah saya.
sumber
Pastikan untuk mengubah ke
<androidx.constraintlayout.widget.ConstraintLayout
dari pada
<android.support.constraint.ConstraintLayout
dan
<androidx.constraintlayout.widget.Barrier
dari pada
<android.support.constraint.Barrier
sumber
Saya mengalami masalah ini dengan Android Studio 4.0. Saya menggunakan android studio 4.0 selama beberapa hari tanpa masalah. Tampaknya entah dari mana tampilan desainer berhenti bekerja. Saya hanya dapat memperbaikinya dengan menghapus instalan studio android dan menginstal versi studio android terbaru.
sumber
ya. mavenCentral () dan dependensi yang benar memecahkan masalah saya yang sama
sumber
Saya mengalami kesalahan serupa.
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
Berikut rekomendasinya:
add androidx.constraintlayout.ConstraintLayout to the dependencies: dependencies { implementation "androidx.constraintlayout:constraintlayout:1.1.3" }
Dan repositori mavenCentral ().
Bekerja untuk saya. Saya bisa mengkompilasi APK.
sumber
Saya memperbarui ketergantungan, namun tidak menyelesaikan kesalahan. Kemudian saya melakukan proyek bersih dan membangun dan itu bekerja sekarang.
sumber
Maksud saya, temukan pemetaan dan gunakan di seluruh proyek.
sumber
ubah ketergantungan layout kendala Anda ke implementasi 'androidx.constraintlayout: constraintlayout: 2.0.2'
sumber