एंड्रॉइड पर माइग्रेशन के बाद क्लास androidx.constraintlayout.ConstraintLayout में त्रुटि करने पर


87

मैंने अभी Android Studio मेनू विकल्प Refactor -> Refactor to AndroidX के माध्यम से Androidx के लिए एक माइग्रेशन बनाया है

मुझे निम्नलिखित त्रुटि मिल रही है:

android.view.InflateException: बाइनरी एक्सएमएल फ़ाइल लाइन # 2: बाइनरी एक्सएमएल फ़ाइल लाइन # 2: कक्षा में त्रुटि बढ़ रही है androidx.constraintlayout.ConstraintLayout

कोई उपाय?

स्टैक ट्रेस:

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)

कृपया संपूर्ण स्टैकट्रेस दिखाएं।
द वेंडर

कृपया अपने ऐप स्तर निर्माण बिल्ड ग्रेड को साझा करें ताकि हम निर्भरता देख सकें।
अभिनव सक्सेना

जवाबों:


177

मैं सभी की घटनाओं को बदलकर अपनी समस्या को हल करता हूं

androidx.constraintlayout.ConstraintLayout

सेवा

androidx.constraintlayout.widget.ConstraintLayout


12
हां, एंड्रॉइड स्टूडियो ट्रांसफॉर्मेशन में त्रुटि, androidx.constraintlayout.widget.ConstraintLayout के साथ xml लेआउट में सभी घटना को बदलना चाहिए ... धन्यवाद
issamux

1
मैंने androidx सपोर्ट लाइब्रेरी के साथ एक नया प्रोजेक्ट बनाया है और मेरे पास पहले से ही androidx.constraintlayout.widget.ConstraintLayout मेरी मुख्य गतिविधि है, लेकिन फिर भी वही त्रुटि हो रही है।
कंचन

2
@ कंचन यदि आप एक मल्टी-मॉड्यूल प्रोजेक्ट में काम कर रहे हैं, तो जांच लें कि क्या आपको किसी में कॉन्स्ट्रेन्थलाईट पथ को अपडेट करने की आवश्यकता है।
वासुदेव

50

androidx.constraintlayout.widget.ConstraintLayoutनिर्भरता में जोड़ें :

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

यह पर उपलब्ध है mavenCentral()


दूसरा constraintlayoutअपरकेस द्वारा शुरू नहीं करता है Cलेकिन। सही एक:'androidx.constraintlayout:constraintlayout:1.1.3'
। ઽ ૯ '

आपने मुझे मामूली सिरदर्द से बचाया
Koen Van Looveren

1
एंड्रॉइड स्टूडियो पर ऐसा क्यों होता है? मैंने इसे 1.1.2 से बदलकर 1.1.3 कर दिया। धन्यवाद।
BollMose

1
@ बॉल्मोज़ - मुझे पता नहीं क्यों, लेकिन 1.1.2 सिर्फ मौत के लिए घुटता है। संभवत: कुछ अनुकूलता कार्यक्रम जो कि अच्छे लोग Google से चूक गए। वे बहुत कुछ करते हैं; Android प्रोग्रामिंग में आपका स्वागत है!
SMBiggs

2
मेरे लिए, यह केवल स्वीकार्य उत्तर होना चाहिए। बग में 1.1.2, 1.1.3 से मिलकर एक बग है, इस समस्या को ठीक करें।
मोचादिवी

10

मेरे पास एक ही समस्या थी, मैंने इसे इस प्रकार हल किया:

यदि आपने जोड़ा है तो आपकी निर्भरता में

implementation 'androidx.constraintlayout:constraintlayout:1.x.x' वह सही है

लेकिन अपनी xml लेआउट फ़ाइल में आपको विजेट का उपयोग करना होगा

androidx.constraintlayout.widget.ConstraintLayout


5

यदि आपके ग्रेड फ़ाइल में रिपॉजिटरी के रूप में mavenCentral () जोड़ने और आपकी समस्या को हल नहीं करने के androidx.constraintlayout.ConstraintLayoutलिए बदलने के androidx.constraintlayout.widget.ConstraintLayoutबाद, तो अमान्य कैश करने का प्रयास करें और फ़ाइल मेनू से पुनरारंभ करें । इसने मेरे लिए काम किया।


5

build.gradle => निर्भरता संस्करण की जाँच करें

implementation 'androidx.constraintlayout:constraintlayout:1.1.1'


बदलने के लिए

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

समस्या का हल किया


1
इसका स्वरूप ठीक था और इस जवाब ने मेरे लिए काम किया। धन्यवाद।
लुकास बिम्बा

१.१.२ से आया है। 1.1.3 को अपडेट करना मेरे लिए भी तय है। धन्यवाद!
सोम

5

सुनिश्चित करें कि आपकी परियोजना पूरी तरह से androidx में माइग्रेट करती है, मेरे मामले में मैंने पाया:

<android.support.constraint.ConstraintLayout

के बजाय

  <androidx.constraintlayout.widget.ConstraintLayout

तो इसे बदलें और मेरी समस्या ठीक हो गई!


4

मेरे पास एक ही मुद्दा है:

  • androidx के लिए माइग्रेशन समर्थन पुस्तकालय;
  • वेतन वृद्धि लक्ष्य २ ९ को;

मैं भी उपयोग करता हूं:

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

मैंने इस सवाल से सभी पोस्ट करने की कोशिश की, लेकिन सफलता नहीं मिली।

मैं इसे .disableCustomViewInflation()सुलेख 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());
    // ...
}

मुझे उम्मीद है कि कैलीग्राफी (क्रिस्टोफर जेनकिंस आपकी शानदार नौकरी के लिए धन्यवाद) की अगली रिलीज भी इसे ठीक कर देगी।


मैं अपने प्रोजेक्ट में भी इसका इस्तेमाल नहीं कर रहा था, लेकिन लाइब्रेरी वहां पर थी। इसे हटाने के बाद ऐप ने उम्मीद के मुताबिक काम करना शुरू कर दिया। धन्यवाद
प्रतीक म्हात्रे

4

क्लिक करने के बाद Refactor -> Migrate to AndroidX, सुनिश्चित करें कि build.gradle (मॉड्यूल: ऐप) में आपकी सभी निर्भरता नवीनतम संस्करण में चिह्नित है

यदि इसकी नहीं, तो निर्भरता पीले हाइलाइटेड रंग में दिखाई देगी और आप इसे माउस पर मँडरा कर बदल सकते हैं।

दूसरे, सभी XML लेआउट फ़ाइलों में ConstraintLayout टैग बदलें

androidx.constraintlayout.widget.ConstraintLayout

अधिक सुरक्षित विकल्प के लिए, अपनी परियोजना को साफ करें और उपरोक्त चरणों के बाद इसे फिर से सिंक करें।


2

सुनिश्चित करें कि आपने बाधा लेआउट के लिए निर्भरता को जोड़ा है

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

और बदलाव किए हैं

<androidx.constraintlayout.widget.ConstraintLayout instead of

<android.support.constraint.ConstraintLayout

1

मैंने xml से एक मौजूदा कॉन्स्ट्रेन्थ लयआउट टैग को कॉपी और पेस्ट किया, जो मेरे लिए समस्या पैदा कर रहा था। बस हटाने, और खरोंच से AndroidStudio में ConstraintLayout टैग को फिर से जोड़ना मेरे लिए मुद्दा तय किया।


1

करने के लिए बदलने के लिए सुनिश्चित करें

<androidx.constraintlayout.widget.ConstraintLayout

के बजाय

<android.support.constraint.ConstraintLayout

तथा

<androidx.constraintlayout.widget.Barrier

के बजाय

<android.support.constraint.Barrier

1

मेरे पास एंड्रॉइड स्टूडियो 4.0 के साथ यह मुद्दा था। मैंने समस्याओं के बिना कुछ दिनों के लिए एंड्रॉइड स्टूडियो 4.0 का उपयोग किया। कहीं से भी बाहर डिजाइनर दृश्य काम करना बंद कर दिया। मैं केवल एंड्रॉइड स्टूडियो की स्थापना रद्द करके और नवीनतम एंड्रॉइड स्टूडियो संस्करण स्थापित करके इसे ठीक कर सकता हूं।


0

Yepp। mavenCentral () और सही निर्भरताएँ मेरी समान समस्याओं को हल करती हैं


0

मेरी भी ऐसी ही त्रुटि थी।

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

पुनर्मूल्यांकन के बाद:

add androidx.constraintlayout.ConstraintLayout to the dependencies:

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

और रिपॉजिटरी मेवेनसेन्ट्रल ()।

मेरे लिये कार्य करता है। मैं एपीके संकलित कर सकता हूं।


0

मैंने निर्भरता को अद्यतन किया, फिर भी इसने त्रुटि का समाधान नहीं किया। फिर मैंने एक स्वच्छ परियोजना और निर्माण किया और यह अब काम कर रही है।


0
  1. Refactor -> Refactor to AndroidX पर क्लिक करने से पहले सभी डिफ़ॉल्ट खोजें
  2. यह https://developer.android.com/jetpack/androidx/migrate/class-mappings खोलें और "android.support.v4.widget.DrawerLayout" ढूंढें। उसी पंक्ति में AndroidX वर्ग का नाम "androidx.drawerlayout.widget.DrawerLayout" है।

यहाँ छवि विवरण दर्ज करें

  1. अपने प्रोजेक्ट के कोड, लेआउट और मेनू में सभी "android.support.v4.widget.DrawerLayout" को "androidx.drawerlayout.widget.DrawerLayout" में बदलें। आखिरकार यह काम करेगा।

मेरा मतलब है कि मैपिंग ढूंढो और पूरे प्रोजेक्ट में इसका इस्तेमाल करो।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.