NoClassDefFoundError को कैसे हल करें: विफल संकल्प: Landroid / view / View $ OnUnhandledKeyEventListener;


95

मैंने अपना Android स्टूडियो अपग्रेड कर लिया है

Android Studio 3.2
Build #AI-181.5540.7.32.5014246, built on September 17, 2018
JRE: 1.8.0_152-release-1136-b06 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.11.6

मैं खाली गतिविधि टेम्पलेट का उपयोग करके एक नया प्रोजेक्ट बनाता हूं

Sync Gradle
Clean
Build
Run

मेरा एप्लिकेशन लॉगकैट स्टार्टअप पर इस अपवाद को दिखाता है

2018-09-27 13:51:41.116 22090-22090/? I/zygote64: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.support.v4.view.ViewCompat.setBackground(android.view.View, android.graphics.drawable.Drawable) (ViewCompat.java:2341)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.support.v7.widget.ActionBarContainer.<init>(android.content.Context, android.util.AttributeSet) (ActionBarContainer.java:62)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at java.lang.Object java.lang.reflect.Constructor.newInstance0(java.lang.Object[]) (Constructor.java:-2)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[]) (Constructor.java:334)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.createView(java.lang.String, java.lang.String, android.util.AttributeSet) (LayoutInflater.java:647)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:790)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.createViewFromTag(android.view.View, java.lang.String, android.content.Context, android.util.AttributeSet) (LayoutInflater.java:730)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.view.LayoutInflater.rInflate(org.xmlpull.v1.XmlPullParser, android.view.View, android.content.Context, android.util.AttributeSet, boolean) (LayoutInflater.java:863)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.view.LayoutInflater.rInflateChildren(org.xmlpull.v1.XmlPullParser, android.view.View, android.util.AttributeSet, boolean) (LayoutInflater.java:824)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.inflate(org.xmlpull.v1.XmlPullParser, android.view.ViewGroup, boolean) (LayoutInflater.java:515)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup, boolean) (LayoutInflater.java:423)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.View android.view.LayoutInflater.inflate(int, android.view.ViewGroup) (LayoutInflater.java:374)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.view.ViewGroup android.support.v7.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:607)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.support.v7.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.support.v7.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.support.v7.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void com.manacle.secondmanacle.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:11)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7009)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7000)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1214)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2731)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2856)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1589)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.os.Looper.loop() (Looper.java:164)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6494)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:438)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64:     at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:807)
2018-09-27 13:51:41.116 22090-22090/? I/zygote64: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.manacle.secondmanacle-6Ra5peoMwc4HH30iTlEXCg==/base.apk"],nativeLibraryDirectories=[/data/app/com.manacle.secondmanacle-6Ra5peoMwc4HH30iTlEXCg==/lib/arm64, /system/lib64, /vendor/lib64]]

मैंने एंड्रॉइड स्टूडियो द्वारा उत्पन्न टेम्पलेट ऐप में कोई बदलाव नहीं किया है।

जेनरेट टेम्प्लेट ऐप क्यों सफाई से शुरू नहीं करता है?

मैंने androidX पर माइग्रेट करने की कोशिश की, हालाँकि समस्या बिल्कुल वैसी ही बनी हुई है।

केंट एंड्रॉइड स्टूडियो "क्लीन" टेम्पलेट एप्लिकेशन क्यों उत्पन्न करता है?

मेरी ग्रेडल फाइलें इस प्रकार हैं: -

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

====

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.manacle.secondmanacle"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
}

जवाबों:


48

कभी-कभी नवीनीकरण के बाद, आपको कैश को अमान्य और साफ़ करने की आवश्यकता होती है।

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

3.2 में कुछ ज्ञात मुद्दे हैं इसलिए यह भी सुनिश्चित करें कि आप कोटलिन टूल्स पर नहीं हैं। org.jetbrains.kotlin: kotlin-gradle-plugin: 1.2.70

के रूप में अच्छी तरह से फ्रीज मुद्दों का कारण बनता है। यदि वह काम नहीं करता है, तो अपनी Google प्लगइन लाइनों को हटा दें और पुस्तकालयों का समर्थन करें, सिंक करें और उन्हें फिर से जोड़ें और सिंक करें। कभी-कभी कैश डायरेक्टरी सिर्फ झोंके से निकल जाती है।


2
बहुत बढ़िया, खुशी है कि यह फिर से काम किया। यह मेरे बट को कई बार बचाया है;)
सैम

9
कुछ भी मदद नहीं। मैं अमान्य कैश / पुनः आरंभ करने का प्रयास करता हूं। कोटलिन के साथ और उसके बिना। मेरे पास एंड्रॉइड स्टूडियो 3.2.1 है।
14

हाय @ जैकबर्ट, आप वह नहीं हैं जो सवाल पूछा है, इसलिए मुझे नहीं पता कि आपकी स्थिति क्या है। कृपया अपने परिदृश्य, संस्करण, टूलसेट और त्रुटि के साथ एक प्रश्न पोस्ट करें और अगर मुझे समस्या दिखाई देती है तो मैं कोशिश करके मदद करने में प्रसन्न हूं।
सैम

1
हाय @Sam यह बिल्कुल वही समस्या है। मैं एक नया प्रॉजेक्ट बनाता हूं और इस नए प्रोजेक्ट को शुरू करता हूं और वही लॉगकैट इन्फोस बन जाता हूं। लेकिन मैं 9 अक्टूबर, 2018 JRE: 1.8.0_152-release-1136-b06 amd64 JVM: OpenDDK 64-बिट सर्वर VM द्वारा JetBrains sro विंडोज 7 6.1 पर निर्मित # AI-181.5540.7.32.5056338, Android AI 3.2 का उपयोग करें।
बॉबर्ट

2
मुझे मुझसे इश्यूट्रैकर जारी करने का पता चला है। 11117685087 यह एक ही त्रुटि करता है
Bobert

12

यदि आप android x का उपयोग कर रहे हैं, तो यह प्रयास करें (इस कोड सेगमेंट को ऐप स्तर ग्रेड फ़ाइल में जोड़ें)

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == "androidx") {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion "${targetSdk}.+"
        }
    }
}}

अगर आप android x का उपयोग नहीं कर रहे हैं तो इस कोड सेगमेंट को आज़माएँ।

configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
    def requested = details.requested
    if (requested.group == "com.android.support") {
        if (!requested.name.startsWith("multidex")) {
            details.useVersion "26.+"
        }
    }
}}

धन्यवाद, लेकिन मेरे लिए काम नहीं किया :-( - एंड्रॉइड स्टूडियो 3.5.3, बिल्ड # AI-191.8026.42.35.6010548, 15 नवंबर, 2019 को बनाया गया, JRE: 1.8.0_202-रिलीज़ -1483-b49-5587405 amd64 , JVM: OpenJDK 64-बिट सर्वर VM JetBrains sro द्वारा, Linux 4.15.0-74-जेनेरिक
लेगोलास 101108

1
@ लेगोलास 185, इससे पहले कि आप एप्लिकेशन का निर्माण करें, अमान्य कैश / पुनः आरंभ आईडीई तब प्रोजेक्ट को साफ करें और एप्लिकेशन को फिर से बनाएं। इसने मेरे लिए काम किया।
इशरा ​​वीरसेकरा

1
मदद की, संशोधनों के बिना एक नया खाली गतिविधि परियोजना अब आपके अतिरिक्त निर्देशों का पालन करने के बाद इस त्रुटि के बिना शुरू होती है। बहुत धन्यवाद!
लेग्सोलस108

मैं कोटलिन और मेरे पर हूँ targetSdk: 29और यह मेरे लिए काम नहीं करता है।
अनबसेल्वन रॉकी

@Anbuselvan रॉकी मुझे लगता है कि आप के लिए यह लेख उपयोगी होगा discuss.kotlinlang.org/t/kotlin-dependencies-in-gradle-projects/...
इशारा Weerasekara

10

Androidx निर्भरता के साथ इसी तरह के मुद्दे को मिला

Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;

नीचे दिए गए ग्रेड फ़ाइलों में कॉन्फ़िगरेशन जोड़कर हल किया गया

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == "androidx.appcompat") {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion "1.+"
            }
        }
    }
}

4.1 पर काम किया। साथी नॉब्स के लिए, मैंने इसे मॉड्यूल के निर्माण के लिए जोड़ा है (ऐप फ़ोल्डर के अंदर एक)।
लोदोविक

यह वास्तव में काम करता है, क्या आप समझा सकते हैं कि क्यों?
आमोस

1
मुझे इस कोड स्निपेट को जोड़ने के बजाय बेहतर समाधान मिला, कृपया stackoverflow.com/a/65217631/3260008
Amos

6

मैंने एक समान समस्या हल की

Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$2>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
 
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener"

Build.gradle (ऐप स्तर) में निर्भरता जोड़ना

implementation 'androidx.core:core:1.5.0-alpha04'

3

मैंने अपनी build.gradle फ़ाइल के नीचे इसे चिपकाकर एक समान समस्या हल की

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == "com.android.support") {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion "26.+"
            }
        }
    }
}

https://github.com/facebook/flipper/issues/146


15
क्या आप बता सकते हैं कि यह क्या कर रहा है?
डैन लोवेनहेर्ज़

1
यह एक विशिष्ट एसडीके रनटाइम स्तर को लक्षित करने के लिए androidx / appcompat निर्भरता के लिए मजबूर करता है।
शेलड्यूड

जो काम नहीं करता है, BTW। यहाँ देखें: stackoverflow.com/questions/51782548/…
शेलडूड

3

यह त्रुटि एक क्षय हो सकती है। मेरे मामले में, वास्तविक त्रुटि Resources$NotFoundExceptionस्टैकट्रेस में कहीं न कहीं थी। जब मैंने एक प्रतिस्थापित <androidx.appcompat.widget.AppCompatImageViewकिया तो ImageViewमुझे एक पठनीय त्रुटि मिली जो तब हल करना आसान था।


3

मेरी समस्या थी कि लेआउट में व्यू तत्वों में से एक के लिए build.gradle में androidx आयात गायब था जिसे फुलाया जा रहा था। implementation 'androidx.drawerlayout:drawerlayout:1.0.0 'निश्चित मेरी विशिष्ट समस्या को जोड़ना । मुझे लगता है कि कुछ Androidx दृश्य है जो आपकी मुख्य गतिविधि के लेआउट के अंदर है जो आयात नहीं किया गया है। सभी विभिन्न पैकेज और संस्करण https://maven.google.com/web/index.html पर हैं , बस वह आइटम ढूंढें जो आप गायब हैं और इसे अपने मॉड्यूल के build.gradle में निर्भरता में जोड़ें।


3

gradleसमस्या को हल करने के लिए इसे जोड़ें , मेरे लिए काम करता है:

implementation 'androidx.appcompat:appcompat:1.3.0-alpha02'

कृपया ध्यान दें कि 1.2.0 भी काम नहीं करता है


1

मैं एक ही अपवाद से जूझ रहा था, लेकिन केवल तभी जब मैंने एक वास्तविक डिवाइस (सैमसंग गैलेक्सी एस 9) पर अपने एप्लिकेशन का परीक्षण किया। एक ही एप्लिकेशन वर्चुअल डिवाइस पर ठीक चल रहा था। चूंकि build.gradle कॉन्फ़िगरेशन परिवर्तन हल नहीं हुआ, इसलिए मैंने अपनी मुख्य गतिविधि AppCompatActivity से गतिविधि तक ले जाकर समस्या के आसपास काम किया। मुझे लगता है कि आप अपनी गतिविधि को अपग्रेड कर रहे हैं, लेकिन यदि आप उन्नत गतिविधि सुविधाओं का उपयोग नहीं कर रहे हैं - यह देखें ( https://developer.android.com/reference/androidx/appcompat/app/AppCompatActivity ) - यह कोई वास्तविक समस्या नहीं है।

//import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;

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