Terjadi error saat mengembangkan kelas androidx.constraintlayout.ConstraintLayout setelah migrasi ke androidx


88

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)

Tolong tunjukkan seluruh stacktrace.
TheWanderer

Silakan bagikan build gradle level aplikasi Anda sehingga kami dapat melihat dependensinya.
Abhinav Saxena

Jawaban:


178

Saya memecahkan masalah saya dengan mengubah semua kemunculan

androidx.constraintlayout.ConstraintLayout

untuk

androidx.constraintlayout.widget.ConstraintLayout


12
Ya, kesalahan pada transformasi Android studio, harus mengubah semua kejadian dalam layout xml dengan androidx.constraintlayout.widget.ConstraintLayout ... terima kasih
issamux

1
Saya telah membuat proyek baru dengan pustaka dukungan androidx dan saya sudah memiliki androidx.constraintlayout.widget.ConstraintLayout dalam aktivitas utama saya tetapi masih mendapatkan kesalahan yang sama.
Kanchan

2
@Kanchan Jika Anda bekerja dalam proyek multi-modul, periksa apakah Anda perlu memperbarui jalur ConstraintLayout di salah satu.
Vasudev

50

Tambahkan androidx.constraintlayout.widget.ConstraintLayoutke dependensi:

dependencies  {
    // https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

Ini tersedia di mavenCentral().


Namun yang kedua constraintlayouttidak dimulai dengan huruf besar C. Yang benar:'androidx.constraintlayout:constraintlayout:1.1.3'
ʍѳђ ઽ ૯ ท

Anda menyelamatkan saya dari sakit kepala ringan
Koen Van Looveren

2
Mengapa ini terjadi di Android Studio? Saya mengubahnya dari 1.1.2 menjadi 1.1.3. Terima kasih.
BollMose

1
@BollMose - Saya tidak tahu mengapa, tetapi 1.1.2 hanya tersedak sampai mati. Mungkin beberapa program kompatibilitas yang terlewatkan oleh orang-orang baik Google. Mereka cenderung sering melakukan itu; selamat datang di pemrograman Android!
SMBiggs

2
Bagi saya, ini adalah satu-satunya jawaban yang dapat diterima. Ada bug yang terdiri dari 1.1.2, 1.1.3, perbaiki masalah ini.
mochadwi

10

Saya memiliki masalah yang sama, saya menyelesaikannya sebagai berikut:

Dalam ketergantungan Anda jika Anda telah menambahkan

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' itu betul

tetapi dalam file layout xml Anda, Anda harus menggunakan widget sebagai

androidx.constraintlayout.widget.ConstraintLayout


5

Jika setelah menambahkan mavenCentral () sebagai repositori dalam file Gradle Anda dan mengubah androidx.constraintlayout.ConstraintLayoutke androidx.constraintlayout.widget.ConstraintLayouttidak menyelesaikan masalah Anda, coba lakukan Invalidate cache dan mulai ulang dari menu file. Itu berhasil untuk saya.


5

build.gradle => periksa versi dependensi

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


Untuk mengganti

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

memecahkan masalah


1
Ini diformat dengan baik dan jawaban ini berhasil untuk saya. Terima kasih.
Lukas Bimba

berasal dari 1.1.2. memperbarui ke 1.1.3 memperbaiki ini untuk saya juga. Terima kasih!
Sen

5

Saya mengalami masalah yang sama setelah:

  • perpustakaan dukungan migrasi ke androidx;
  • menaikkan targetSdkVesrsion menjadi 29;

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.


Saya bahkan tidak menggunakannya dalam proyek saya tetapi perpustakaan ada di sana di gradle. Setelah menghapusnya, aplikasi mulai bekerja seperti yang diharapkan. Terima kasih
Pratik Mhatre

yang satu ini bekerja dengan sempurna untuk saya. Saya menggunakan android studio 4 canary 15
Miguel Silva

5

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!


4

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

androidx.constraintlayout.widget.ConstraintLayout

Untuk opsi yang lebih aman, bersihkan proyek Anda dan sinkronkan kembali setelah langkah-langkah di atas.


2

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

1

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.


1

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

1

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.


0

ya. mavenCentral () dan dependensi yang benar memecahkan masalah saya yang sama


0

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.


0

Saya memperbarui ketergantungan, namun tidak menyelesaikan kesalahan. Kemudian saya melakukan proyek bersih dan membangun dan itu bekerja sekarang.


0
  1. Temukan semua default sebelum mengklik Refactor -> Refactor to AndroidX
  2. Buka https://developer.android.com/jetpack/androidx/migrate/class-mappings ini dan temukan "android.support.v4.widget.DrawerLayout". Di baris yang sama, nama kelas AndroidX adalah "androidx.drawerlayout.widget.DrawerLayout" salin.

masukkan deskripsi gambar di sini

  1. Ganti semua "android.support.v4.widget.DrawerLayout" menjadi "androidx.drawerlayout.widget.DrawerLayout" dalam kode, tata letak, dan menu proyek Anda. Setelah semua, ganti itu akan berhasil.

Maksud saya, temukan pemetaan dan gunakan di seluruh proyek.


0

ubah ketergantungan layout kendala Anda ke implementasi 'androidx.constraintlayout: constraintlayout: 2.0.2'

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.