Androidx'e geçişten sonra androidx.constraintlayout.ConstraintLayout sınıfı şişirilirken hata oluştu


88

Android Studio menü seçeneği Refactor ile androidx'e geçiş yaptım -> Refactor to AndroidX üzerinden androidx'e geçiş yaptım

Aşağıdaki hatayı alıyorum:

android.view.InflateException: İkili XML dosyası satırı # 2: İkili XML dosyası satırı # 2: androidx.constraintlayout.ConstraintLayout sınıfı şişirilirken hata oluştu

Herhangi bir fikir?

Yığın izleme:

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)

Lütfen tüm yığın izini gösterin.
TheWanderer

Bağımlılıkları görebilmemiz için lütfen uygulama düzeyi derleme notunuzu paylaşın.
Abhinav Saxena

Yanıtlar:


178

Sorunumu, tüm oluşumlarını değiştirerek çözüyorum

androidx.constraintlayout.ConstraintLayout

-e

androidx.constraintlayout.widget.ConstraintLayout


12
Evet, Android stüdyo dönüşümler hata ile xml düzeninde tüm oluşumunu değiştirmelisiniz androidx.constraintlayout.widget.ConstraintLayout ... teşekkürler
issamux

1
Androidx destek kitaplığı ile yeni bir proje oluşturdum ve ana faaliyetimde zaten androidx.constraintlayout.widget.ConstraintLayout var ama yine de aynı hatayı alıyorum.
Kanchan

2
@Kanchan Çok modüllü bir projede çalışıyorsanız, herhangi birinde ConstraintLayout yolunu güncellemeniz gerekip gerekmediğini kontrol edin.
Vasudev

50

androidx.constraintlayout.widget.ConstraintLayoutBağımlılıklara ekleyin :

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

Mevcut mavenCentral().


Ancak ikincisi constraintlayoutbüyük harfle başlamaz C. Doğru olanı:'androidx.constraintlayout:constraintlayout:1.1.3'
ʍѳђ ઽ ૯ ท

Beni küçük bir baş ağrısından kurtardın
Koen Van Looveren

2
Bu neden Android Studio'da oluyor? 1.1.2'den 1.1.3'e değiştirdim. Teşekkür ederim.
BollMose

1
@BollMose - Neden bilmiyorum ama 1.1.2 boğulup ölüyor. Muhtemelen Google'ın gözden kaçırdığı bir uyumluluk programı. Bunu çok yapma eğilimindedirler; Android programlamaya hoş geldiniz!
SMBiggs

2
Benim için kabul edilebilir tek cevap bu olmalı. 1.1.2, 1.1.3'ten oluşan bir hata var, bu sorunu düzeltin.
mochadwi

10

Ben de aynı sorunu yaşadım, şu şekilde çözdüm:

Bağımlılıklarınızda eklediyseniz

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' bu doğru

ancak xml mizanpaj dosyanızda widget'ı şu şekilde kullanmanız gerekir:

androidx.constraintlayout.widget.ConstraintLayout


5

Eğer ekledikten sonra mavenCentral () sizin Gradle dosyasında bir deposu olarak ve değişen androidx.constraintlayout.ConstraintLayoutetmek androidx.constraintlayout.widget.ConstraintLayoutsenin sorunun ardından yapmayı deneyin çözmedi Invalidate'yi önbellek ve yeniden dosya menüsünden. Benim için çalıştı.


5

build.gradle => bağımlılık sürümünü kontrol edin

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


değişmek

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

problemi çözdü


1
Biçimlendirilmiş iyi ve bu cevap benim için çalıştı. Teşekkür ederim.
Lukas Bimba

1.1.2'den geldi. 1.1.3'e güncelleme bunu benim için de düzeltti. Teşekkürler!
Pzt

5

Aynı sorunu şundan sonra yaşıyorum:

  • androidx'e geçiş destek kitaplığı;
  • targetSdkVesrsion'u 29'a yükselt;

Ben de kullanıyorum:

implementation "uk.co.chrisjenx:calligraphy:2.3.0"

Bu sorudaki tüm gönderileri denedim, ancak başarılı olmadı.

.disableCustomViewInflation()Calligraphy init'e bir dize ekleyerek düzeltiyorum:

@Override
public void onCreate() {

    super.onCreate();
    // ...
    CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
            .setDefaultFontPath("fonts/Sans-Regular.ttf")
            .setFontAttrId(R.attr.fontPath)
            .disableCustomViewInflation() // <----- this fix
            .build());
    // ...
}

Umarım bir sonraki Calligraphy sürümü (Christopher Jenkins, harika işiniz için teşekkürler) içinde de düzeltecektir.


Onu projemde bile kullanmadım ama kütüphane oradaydı. Kaldırdıktan sonra uygulama beklendiği gibi çalışmaya başladı. Teşekkürler
Pratik Mhatre

bu benim için kusursuz çalıştı. Android studio 4 canary 15
Miguel Silva

5

projenizin tamamen androidx'e geçtiğinden emin olun, benim durumumda şunu buldum:

<android.support.constraint.ConstraintLayout

onun yerine

  <androidx.constraintlayout.widget.ConstraintLayout

Öyleyse değiştirin ve sorunum çözüldü!


4

Üzerine tıkladıktan sonra Refactor -> Migrate to AndroidX, build.gradle'daki (Modül: uygulama) tüm bağımlılıklarınızın en yeni sürüme işaretlendiğinden emin olun .

Değilse, bağımlılık sarı vurgulanmış renkte görünecektir ve fareyi üzerine getirerek değiştirebilirsiniz.

İkinci olarak, tüm XML düzen dosyalarındaki ConstraintLayout etiketini şu şekilde değiştirin:

androidx.constraintlayout.widget.ConstraintLayout

Daha güvenli bir seçenek için projenizi temizleyin ve yukarıdaki adımlardan sonra tekrar senkronize edin.


2

Kısıtlama düzeni için bağımlılık eklediğinizden emin olun

 dependencies  {
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

ve değişiklikleri yaptık

<androidx.constraintlayout.widget.ConstraintLayout instead of

<android.support.constraint.ConstraintLayout

1

Xml'den mevcut bir ConstraintLayout etiketini kopyalayıp yapıştırdım, bu da benim için soruna neden oluyordu. AndroidStudio'da ConstraintLayout etiketlerini basitçe silmek ve yeniden eklemek sorunu benim için çözdü.


1

Olarak değiştirdiğinizden emin olun

<androidx.constraintlayout.widget.ConstraintLayout

onun yerine

<android.support.constraint.ConstraintLayout

ve

<androidx.constraintlayout.widget.Barrier

onun yerine

<android.support.constraint.Barrier

1

Android Studio 4.0 ile bu sorunu yaşadım. Birkaç gün boyunca sorunsuz bir şekilde android studio 4.0 kullandım. Görünüşe göre tasarımcı görüşü hiçbir yerde çalışmayı bıraktı. Bunu ancak android stüdyosunu kaldırıp en yeni android stüdyo sürümünü yükleyerek düzeltebilirim.


0

yepp. mavenCentral () ve doğru bağımlılıklar aynı sorunlarımı çözüyor


0

Benzer bir hatam vardı.

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

Tavsiyelerin ardından:

add androidx.constraintlayout.ConstraintLayout to the dependencies:

dependencies  {
    implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}

Ve depo mavenCentral ().

Benim için çalışıyor. APK'yi derleyebilirim.


0

Bağımlılığı güncelledim, ancak hatayı çözmedi. Sonra temiz bir proje yaptım ve inşa ettim ve şimdi çalışıyor.


0
  1. Refactor -> Refactor to AndroidX'e tıklamadan önce tüm varsayılanları bulun
  2. Bu https://developer.android.com/jetpack/androidx/migrate/class-mappings dosyasını açın ve "android.support.v4.widget.DrawerLayout" u bulun. Aynı satırda AndroidX sınıf adı "androidx.drawerlayout.widget.DrawerLayout" şeklindedir ve onu kopyalayın.

görüntü açıklamasını buraya girin

  1. Projenizin kodu, düzeni ve menüsündeki tüm "android.support.v4.widget.DrawerLayout" u "androidx.drawerlayout.widget.DrawerLayout" olarak değiştirin. Her şeyden sonra değiştirin çalışacaktır.

Demek istediğim haritalama bulup tüm projede kullan.


0

kısıtlama düzeni bağımlılığınızı 'androidx.constraintlayout: constraintlayout: 2.0.2' uygulamasına değiştirin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.