কীভাবে NoClassDefFoundError সমাধান করবেন: এর ব্যর্থ রেজোলিউশন: ল্যান্ড্রয়েড / ভিউ / ভিউ $ OnUnhandledKeyEventListener;


92

আমি আমার অ্যান্ড্রয়েড স্টুডিওতে আপগ্রেড করেছি

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]]

অ্যান্ড্রয়েড স্টুডিওর দ্বারা উত্পাদিত টেম্পলেট অ্যাপটিতে আমি কোনও পরিবর্তন করেছি।

কেন উত্পন্ন টেমপ্লেট অ্যাপ্লিকেশন পরিষ্কারভাবে শুরু হয় না?

আমি অ্যান্ড্রয়েডএক্সে স্থানান্তরিত করার চেষ্টা করেছি, তবে বিষয়টি ঠিক একইরকম রয়েছে।

কেন অ্যানড্রইড স্টুডিও একটি "ক্লিন" টেম্পলেট অ্যাপ্লিকেশন তৈরি করে?

আমার গ্রেড ফাইলগুলি এর অনুরূপ: -

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'
}

উত্তর:


45

কখনও কখনও আপগ্রেডের পরে, আপনাকে ক্যাশে অবৈধ এবং সাফ করতে হবে।

এখানে চিত্র বর্ণনা লিখুন

৩.২-তে কয়েকটি জ্ঞাত সমস্যা রয়েছে তাই আপনি কোটলিন সরঞ্জামগুলিতে নেই তাও নিশ্চিত করুন org.jetbrains.kotlin: কোটলিন-গ্রেডেল-প্লাগইন: 1.2.70

যে কারণে সমস্যা হিমায়িত করে তোলে। যদি এটি কাজ না করে, আপনার গুগল প্লাগইন লাইনগুলি এবং সমর্থন লাইব্রেরিগুলি সরিয়ে ফেলুন, সিঙ্ক করুন এবং তাদের আবার যুক্ত করুন এবং সিঙ্ক করুন। কখনও কখনও ক্যাশে ডিরেক্টরিগুলি কেবল অদৃশ্য হয়ে যায়।


4
দুর্দান্ত, তোমার জন্য কাজ করে আনন্দিত worked এটি আমার বাটকে একাধিকবার সেভ করেছে;)
স্যাম

8
কিছুই সাহায্য। আমি অকার্যকর ক্যাশে / পুনরায় চালু করার চেষ্টা করি। কোটলিনের সাথে এবং ছাড়াও। আমার কাছে অ্যান্ড্রয়েড স্টুডিও ৩.২.১ রয়েছে।
বোবার্ট

হাই @ বুবার্ট, আপনি যে প্রশ্নটি জিজ্ঞাসা করেছেন তিনি নন, সুতরাং আপনার পরিস্থিতি কী তা আমার কোনও ধারণা নেই। আপনার পরিস্থিতি, সংস্করণ, সরঞ্জামসেট এবং ত্রুটি সহ একটি প্রশ্ন পোস্ট করুন এবং আমি সমস্যাটি দেখতে পারলে চেষ্টা করে সহায়তা করার জন্য আমি খুশি।
স্যাম

4
হাই @ সাম এটি ঠিক একই সমস্যা। আমি একটি নতুন প্রকল্প তৈরি করেছি এবং এই নতুন প্রকল্পটি শুরু করব এবং একই লগগ্যাট ইনফোতে পরিণত হব। তবে আমি অ্যান্ড্রয়েড স্টুডিও ৩.২.১ বিল্ড # এআই -181.5540.7.32.5056338, 9 অক্টোবর, 2018 জেআরই: 1.8.0_152-রিলিজ -1136-বি06 এএমডি 64 জেভিএম: ওপেনজেডিকে 64-বিট সার্ভার ভিএম জেটব্রেইনস উইন্ডোজ 7 6.1 দ্বারা নির্মিত
Bobert

4
আমি আমার কাছ থেকে ইস্যুটি ইস্যু পেয়েছি ইস্যুজেট্রেকার জিপিএল /117685087 এটি একই ত্রুটি করে
বোবার্ট

12

যদি আপনি অ্যান্ড্রয়েড এক্স ব্যবহার করে থাকেন তবে এটি ব্যবহার করে দেখুন (অ্যাপ্লিকেশন স্তরের গ্রেডল ফাইলটিতে এই কোড বিভাগটি যুক্ত করুন)

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

যদি আপনি অ্যান্ড্রয়েড এক্স ব্যবহার না করে থাকেন তবে এই কোড বিভাগটি ব্যবহার করে দেখুন।

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, বিল্ড # এআই -191.8026.42.35.6010548, 15 নভেম্বর, 2019-এ নির্মিত, জেআরই: 1.8.0_202-প্রকাশ-1483-বি 49-5587405 এএম 64 , জেভিএম: জেটব্রেইনস sro, ওপেনজেডকে 64-বিট সার্ভার ভিএম, লিনাক্স 4.15.0-74-জেনেরিক
লেগোলা 108

4
@ লেগোলাস ১০৮, আপনি অ্যাপ্লিকেশনটি তৈরি করার আগে, ক্যাশেগুলি বাতিল করুন / পুনরায় চালু করুন তারপরে প্রকল্পটি পরিষ্কার করুন এবং অ্যাপ্লিকেশন এপিএকে পুনর্নির্মাণ করুন। এটা আমার জন্য কাজ করেছে।
ইশারা উইবারেসেকার

4
এটি সাহায্য করেছিল, আপনার অতিরিক্ত নির্দেশাবলী অনুসরণ করার পরে এই ত্রুটি ছাড়াই পরিবর্তন ছাড়াই একটি নতুন খালি ক্রিয়াকলাপ প্রকল্প শুরু হয়। অনেক ধন্যবাদ!
লেগোলা 108

আমি কোটলিনে আছি এবং আমার targetSdk: 29এবং এটি আমার পক্ষে কাজ করে না।
আনবসেলভান রকি

@Anbuselvan রকি আমার মনে হয় আপনি জন্য এই নিবন্ধটি সহায়ক হবে discuss.kotlinlang.org/t/kotlin-dependencies-in-gradle-projects/...
ইশারা weerasekara

8

অ্যান্ড্রয়েডেক্স নির্ভরতা যেমন একই সমস্যা পেয়েছেন

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.0.০.১

এএস ৪.১ এ কাজ করেছেন। সহকর্মী নুবসের জন্য , আমি এটি মডিউলটির বিল্ডআরডলে (অ্যাপ ফোল্ডারের অভ্যন্তরে) যুক্ত করেছি।
লোডোভিক

3

আমি আমার বিল্ড.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
আপনি কি ব্যাখ্যা করতে পারেন এটি কি করছে?
ড্যান লোয়েনেহার্জ

4
এটি একটি নির্দিষ্ট এসডিকে রানটাইম স্তরকে লক্ষ্য করতে অ্যান্ড্রয়েডেক্স / অ্যাপকম্প্যাট নির্ভরতা libs জোর করে।
শেলডুড

যা কাজ করে না, বিটিডাব্লু। : এখানে দেখতে stackoverflow.com/questions/51782548/...
ShellDude

3

এই ত্রুটি একটি ক্ষয় হতে পারে। আমার ক্ষেত্রে, আসল ত্রুটি Resources$NotFoundExceptionস্ট্যাকট্রেসের কোথাও পরিণত হয়েছিল । যখন আমি একটি প্রতিস্থাপিত <androidx.appcompat.widget.AppCompatImageViewসঙ্গে ImageViewআমি একটি পাঠযোগ্য ত্রুটি যা পরে সমাধানের জন্য সহজ ছিল না।


3

আমার সমস্যাটি ফুলে উঠছে যে লেআউটটিতে এমন একটি ভিউ এলিমেন্টের জন্য বিল্ড.gradle এ অ্যান্ড্রয়েডেক্স আমদানি অনুপস্থিত। যুক্ত implementation 'androidx.drawerlayout:drawerlayout:1.0.0 'করা আমার নির্দিষ্ট সমস্যাটিকে স্থির করে। আমি ভাবছি এমন কিছু অ্যান্ড্রয়েডক্স ভিউ রয়েছে যা আপনার মূল ক্রিয়াকলাপের লেআউটের ভিতরে রয়েছে যা আমদানি করা হয়নি। বিভিন্ন প্যাকেজ এবং সংস্করণগুলির সমস্ত https://maven.google.com/web/index.html এ রয়েছে , আপনি যে আইটেমটি হারিয়েছেন তা কেবল সন্ধান করুন এবং এটি আপনার মডিউলের বিল্ড.gradle এর নির্ভরতাগুলিতে যুক্ত করুন।


2

আমি একই রকম একটি সমস্যা সমাধান করেছি

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"

বিল্ড.gradle এ নির্ভরতা যুক্ত করা হচ্ছে (অ্যাপ্লিকেশন স্তর)

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

1

আমি একই ব্যতিক্রমের সাথে লড়াই করেছি তবে কেবলমাত্র যখন আমার অ্যাপ্লিকেশনটিকে সত্যিকারের ডিভাইসে পরীক্ষা করে দেখি (স্যামসুং গ্যালাক্সি এস 9)। ভার্চুয়াল ডিভাইসে একই অ্যাপ্লিকেশনটি দুর্দান্ত চলছে। যেহেতু build.gradle কনফিগারেশনের পরিবর্তনটি সমাধান হয়নি, তাই আমি আমার মূল কার্যকলাপটি অ্যাপকম্প্যাটএক্টিভিটি থেকে ক্রিয়াকলাপে স্থানান্তরিত করে সমস্যাটি ঘিরে কাজ করেছি। আমি আপনার ক্রিয়াকলাপ হ্রাস করার মতো মনে করি তবে আপনি যদি উন্নত ক্রিয়াকলাপের বৈশিষ্ট্যগুলি ব্যবহার না করেন - এটি দেখুন ( https://developer.android.com/references/androidx/appcompat/app/appCompatActivity ) - এটি আসল সমস্যা নয়।

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

public class MainActivity /*extends AppCompatActivity*/ extends Activity
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.