Android ClassNotFoundException: पथ पर कक्षा नहीं मिली


97
10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561):     ... 11 more

मुझे वास्तव में यकीन नहीं है कि यह क्या कारण है क्योंकि यह सही ढंग से प्रकट में सूचीबद्ध है:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gvg.simid"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-feature android:name="android.hardware.usb.host" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.gvg.simid.Login"
            android:label="@string/app_name" 
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

मैंने पथ बनाने के लिए "एंड्रॉइड प्राइवेट लाइब्रेरीज़" को भी जोड़ा, और इसे "ऑर्डर और एक्सपोर्ट" के शीर्ष पर ले जाया, लेकिन इसने मुझे अभी भी वही त्रुटि दी।

संपादित करें: मैंने पूरी तरह से परियोजना का पुनर्निर्माण किया, और त्रुटि को पुन: उत्पन्न करने में असमर्थ था। निश्चित नहीं था कि यह क्या कारण था।


2
आप का उपयोग कर रहे हैं प्रहरी?
Juangcg

रक्षक सक्षम नहीं है।
Phito

इस पोस्ट की जाँच करें: stackoverflow.com/questions/10866431/…
Juangcg

एंड्रॉइड में ".Login" को आज़माएं: इसके बजाय नाम, एंड्रॉइड बाकी उपसर्ग को अपने आप जोड़ देगा यदि वह इसका पता नहीं लगा सकता है। केवल ग्रहण के साथ एक अजीब पार्सिंग मुद्दा हो सकता है
डारिल बाइलिस

@Juangcg मैंने इसे बनाने से पहले उस पोस्ट को पढ़ा, लेकिन दुर्भाग्य से मैंने वहाँ से जो कुछ भी आजमाया वह काम नहीं आया।
फाइटो

जवाबों:


76

मेरे पास अपनी परियोजना के लिए एक ही मुद्दा था। यह मेरी परियोजना और मेरे प्रोजेक्ट में जोड़े गए लाइब्रेरी प्रोजेक्ट के बीच एंड्रॉइड सपोर्ट लाइब्रेरी संस्करण में संघर्ष के कारण हुआ। अपने प्रोजेक्ट और लाइब्रेरी प्रोजेक्ट्स में उसी संस्करण को एंड्रॉइड सपोर्ट लाइब्रेरी में शामिल करें और बिल्ड बिल्ड ... सब कुछ काम करेगा ...


3
धन्यवाद दोस्त!!! मुझे यकीन था कि मैंने पहले ही कर लिया था, लेकिन मैंने जाँच की और संस्करण अलग थे! आपका बहुत बहुत धन्यवाद!
रोड्रिगो वेनानिसो

2
मैं इसे "अपडेट" एसडीके को अगली बार याद करने के लिए टिप्पणी करता हूं, इस उत्तर को देखें
एनरिक सैन मार्टीन

1
किसी भी विचार क्यों समस्या हो अगर मैं समर्थन पुस्तकालयों का उपयोग नहीं करते हैं?
बुद्ध

33

यह निम्नलिखित विधि मेरे लिए काम करती है

  • अपने पर राइट क्लिक करें project और चुनेंproperties
  • "गुण" पैनल खुलेगा। बाईं ओर मेनू सेJava Build Path -> पर जाएंOrder and Export
  • नीचे दी गई सूची से बॉक्स को अनचेक करें "Android Dependencies"
  • अंत में clean your projectऔर भागो

8
मेरे लिए यही काम किया। "Android निर्भरता" का क्या अर्थ है और इस विशेष मामले में इसकी मदद क्यों की गई?
ओलेग ग्रिब

पूरी तरह से मेरे लिए काम किया! आपका बहुत बहुत धन्यवाद!
प्रजितदास

7
क्या ये निर्देश ग्रहण के लिए हैं? मैं Android स्टूडियो के इन निर्देशों का पालन नहीं कर सकता। मेरा क्या है project? इसका क्या मतलब है?
एडम जॉन्स

1
हाँ ये निर्देश ग्रहण के लिए हैं
क्रिस


13

आप में से जो लोग इस मुद्दे को एंड्रॉइड स्टूडियो में ले रहे हैं, मुझे मर्ज होने के बाद भी यही समस्या थी और किसी कारण से इसके बाद भी बनी रही cleanऔरinvalidate cash/restart संचालन भी हुआ जो मुझे पागल कर रहा था।

बाहर मुड़ता है, इसे कमांड लाइन से एक बार ग्रेडल बिल्ड चलाकर ठीक किया जा सकता है। बस निम्नलिखित एन परियोजना निर्देशिका चलाते हैं:

./gradlew assemble clean
./gradlew assemble

मुझे उम्मीद है कि यह किसी ऐसे समय को बर्बाद करेगा, जिससे मुझे गुजरना पड़ा।


मेरे लिए भी काम किया
davedavedave

12

मेरे पास एक ही मुद्दा था, यह मेरे लिए काम करता है

1) सापेक्ष पथ के स्थान पर मुख्य गतिविधि में पूर्ण पथ।

2) डिलीट 'बिल्ड' फोल्डर और क्लीन प्रोजेक्ट।


बिल्ड फोल्डर को डिलीट करना मेरे लिए काम कर गया। मैंने इस मुद्दे पर कुछ घंटे खो दिए, धन्यवाद
गाइ एस

मेरे लिए भी काम किया। धन्यवाद।
दुष्यंत सुथार

यह एक वास्तविक डील है। XD
नोब-विज्ञान-बॉट

9

यदि आप एक्लिप्स ट्राई प्रोजेक्ट -> क्लीन का उपयोग कर रहे हैं


एंड्रॉइड स्टूडियो के लिए काम करता है - स्वच्छ / पुनर्निर्माण परियोजना और रन
frcake

8

यदि आपने Library Projectअपने एंड्रॉइड प्रोजेक्ट में एक मॉड्यूल के रूप में एक नया जोड़ा और आप Kotlinअपनी लाइब्रेरी में उपयोग कर रहे हैं, तो जोड़ना न भूलें

apply plugin: 'kotlin-android'

अपने मॉड्यूल के ग्रेड फ़ाइल के शीर्ष पर। जब आप एक नया मॉड्यूल बनाते हैं तो Android Studio इस पंक्ति को नहीं जोड़ता है और यह मेरे जैसे आपके घंटों को बर्बाद कर सकता है।

संपादित करें: थोड़ी देर के बाद, मैं बस फिर से इस समस्या से जूझ रहा था और इस बार मैं अपने मॉड्यूल को परियोजना पर निर्भरता के रूप में जोड़ना भूल गया। :)


यह मेरे लिए हल है और मैं सिर्फ एक उत्तर पोस्ट करना चाहता था। समाधान के लिए SO पर पृष्ठ दो पर कौन जाता है?
कुनो

यह समस्या तब होती है जब हम जावा लाइब्रेरी प्रोजेक्ट का उपयोग करते हैं ... इस समाधान ने मेरी समस्या को ठीक किया
देवराठ

इसने मेरी मदद की, धन्यवाद :)
श्रीकांत करुमनघाट

7

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


6

अगर आपको एंड्रॉइड स्टूडियो 2.0 और उससे ऊपर के नए इंस्टेंट रन फीचर का उपयोग करते समय यह त्रुटि मिलती है तो यह उनकी तरफ से किसी प्रकार का बग है।
इसे ठीक करने के लिए आपको अपने ऐप को डिवाइस / एमुलेटर पर मैन्युअल रूप से बंद करना होगा यदि यह बंद नहीं होता है तो एंड्रॉइड स्टूडियो से चुनें BuildRebuild Project
इसके बाद रन बटन या SHIFT + F10 पर क्लिक करें


6

किसी भी एक व्यक्ति के लिए जो मल्टीडेक्स सक्षम है उसे यह लिखना चाहिए

अंदर build.gradle

apply plugin: 'com.android.application'

android {
 defaultConfig {
      multiDexEnabled true
  }
 dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
}

EnableMultiDexनीचे की तरह एक वर्ग लिखें

import android.content.Context;
import android.support.multidex.MultiDexApplication;

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

और अनुप्रयोग टैग के अंदर AndroidManifest.xmlइस वर्गनाम को लिखें

 <application
    android:name="YourPakageName.EnableMultiDex"
    android:hardwareAccelerated="true"
    android:icon="@drawable/wowio_launch_logo"
    android:label="@string/app_name"
    android:largeHeap="true"
    tools:node="replace">

ओह्ह्ह्ह महन ... एकदम सही जवाब..मैंने यह जवाब देखा लेकिन किसी ने भी वोट नहीं दिया इसलिए मैंने इस बात की उपेक्षा की और वोट दिए गए जवाबों के लिए गया लेकिन काम नहीं किया..क्योंकि मैंने अभी इस एक का परीक्षण किया और मुझे मिल गया, धन्यवाद महेन। :)। :) :)
सचिन वर्मा

यह मदद मिली :)
मनोहर रेड्डी

2
मुख्य बिंदु MultiDexApplicationइसके बजाय कक्षा से आवेदन का विस्तार करना है Application
वीएसबी

धन्यवाद। मैं पहले से ही मेनिफेस्ट में कुछ एप्लिकेशन था। इससे बढ़ाया गया MultiDexApplication, और अपवाद एंड्रॉइड 4.4 पर गायब हो गया।
CoolMind

6

यदि आप एंड्रॉइड 4.4 और पूर्व पर मल्टीडेक्स का उपयोग कर रहे हैं , तो आपका मुद्दा यह हो सकता है कि आपकी गतिविधि कक्षा दूसरी डीएक्स फ़ाइल में स्थित है और इसलिए एंड्रॉइड सिस्टम द्वारा नहीं मिली है।

अपनी गतिविधि कक्षा को मुख्य डेक्स फ़ाइल में रखने के लिए, यह पृष्ठ देखें:

https://developer.android.com/studio/build/multidex.html#keep


यह जानने के लिए कि कौन सी कक्षाएं डेक्स फ़ाइल उपयोग में स्थित हैं, एंड्रॉइड स्टूडियो

बस Android स्टूडियो में अपने APK n खींचें खींचें। आपको एपीके एक्सप्लोरर में अपनी डेक्स फाइलें देखने में सक्षम होना चाहिए।

फिर डीएक्स फ़ाइल चुनें कि कौन सी कक्षाएं अंदर हैं।


एक अन्य विकल्प डेक्सडम्प है:

आप कमांड डीएक्सडंप का उपयोग करके अपनी डीएक्स फाइलों की सामग्री को अपने एपीके में समाहित कर सकते हैं

Android-SDK / निर्माण उपकरण / 27.0.3 / dexdump

विंडोज़ उपयोगकर्ताओं के लिए इस उपकरण को मैंने प्रक्रिया को आसान बनाने के लिए बनाया है


1
अपने स्वयं के टूल को लिंक करते समय, आपको इसे स्वयं घोषित करना सुनिश्चित करें
LW001

5

मेरे मामले में यह प्राउड मिनिफिकेशन प्रक्रिया थी जिसने मेरे उत्पादन से कुछ महत्वपूर्ण वर्गों को हटा दिया।

समाधान proguard-rules.pro फ़ाइल को संपादित करने और निम्नलिखित को जोड़ने के लिए था:

-keep class com.someimportant3rdpartypackage.** { *; }

3

1) प्रोजेक्ट रूट के तहत लिबर्स फोल्डर बनाएं
2) जार फाइल को उसमें कॉपी करें और पेस्ट करें
3) बिल्ड पाथ को कॉन्फ़िगर करें (जार जोड़ें)
4) क्लीन और रन

चियर्स :-)


3

मानो या न मानो ... मैंने लगभग प्रत्येक उत्तर की कोशिश की, जो मुझे स्टैकओवरफ़्लो पर यहां मिला था। कुछ भी मदद नहीं करेगा, जब तक मैं सिर्फ मशीन को पुनरारंभ नहीं करता। मेरा Android स्टूडियो Ubuntu 16.04 LTS पर काम करता है।


यहाँ भी, सभी की कोशिश की और अपनी टिप्पणी के बाद पुनः आरंभ। मैंने अपने आउटपुट में एक रिफैक्टर्ड क्लास के नाम का एक संदर्भ देखा, जो "बिल्ड नहीं किया जा सका" के बावजूद मैं पूरे बिल्ड फ़ोल्डर को मिटा देता हूं .. बस एंड्रॉइड शुरू करना
Alwin Kesler

2

मुझे इस त्रुटि का एक बार सामना करना पड़ा जब मैंने एक वर्ग को परिभाषित किया जो एक दृश्य को बढ़ाता था लेकिन गलत नाम के साथ लेआउट फ़ाइल में इस कस्टम दृश्य को संदर्भित करता है। इसके बजाय <com.example.customview/>, मैंने <com.customview/>XML लेआउट फ़ाइल में शामिल किया था ।


2

मैंने उसी समस्या का सामना किया और निम्न कार्य करके इसे हल किया:

बिल्ड मेनू से सेलेक्ट करें

1- स्वच्छ परियोजना।

2- बिल्ड एपीके।


मैं हमेशा एसओ पर समाधान की तलाश में घंटों बिताता हूं और साफ-सुथरा हो जाता हूं -> निर्माण मुझे करना है।
शिशिर शेट्टी

2

मैं उसी समस्या से मिला और मैंने देखा कि नमूना कोड निर्देशिका "src" के बजाय निर्देशिका "जावा" के तहत रखा गया था। कोड को src में ले जाने के बाद, समस्या हल हो गई।

यह भी सुनिश्चित करें कि ऐप निर्देशिका कई फ़ोल्डरों में विभाजित है। जैसे /main/com/site/appname/नहीं/main/com.site.appname/

आशा है कि यह काम करता है ~


आपने मेरे सिर पर जो समस्या थी, उसे भुनाया! पर्याप्त नींद नहीं, यह भी महसूस नहीं किया गया कि कक्षाएं जावा फ़ोल्डर में थीं :)
bran.io

2

मैं एक ही समस्या का सामना करता हूं, और बहुत सारे काम और खोज के बाद, मैंने इसका समाधान निकाला: मैंने अभी परियोजना को साफ किया और फिर एपीके का निर्माण किया। -बिल्ड-> क्लीन प्रोजेक्ट -बिल्ड-> बिल्ड एपीके (s) मुझे आशा है कि यह उपयोगी है .....


1

मेरा हाल ही में यह मुद्दा था और मैं एंड्रॉइड स्टूडियो 0.8.4 का उपयोग कर रहा हूं

समस्या यह थी कि मैंने XML मेनू लेआउट फ़ाइल का नाम बदलने का फैसला किया था जिसे main.xml कहा जाता था।

इस पर राइट क्लिक करें और Refactor -> का नाम बदलें । इसका नाम बदलने से पहले, "टिप्पणियों और स्ट्रिंग्स में खोजें" और दबाए गए रिफ्लेक्टर को अनचेक करें ।

क्योंकि मेरी फ़ाइल को मूल रूप से 'मुख्य' नाम दिया गया था , इसने ऐप में महत्वपूर्ण रास्तों का नाम बदल दिया था। build.gradle, build.gradle में मुख्य रूप से java.srcDirs, क्योंकि पथ को परिभाषित किया गया है 'src/main/java'

मुझे उम्मीद है कि इससे किसी को भी इस मुद्दे का सामना करने में मदद मिल सकती है।


1

संस्करण 18 से अपग्रेड करने के बाद मुझे यह समस्या थी। उन्नयन के बाद मेरे पास निम्नलिखित थे: प्रोजेक्ट बिल्ड लक्ष्य 5.01 था, लक्ष्य 3KVersion = 21

लेकिन: बिल्ड टूल्स अभी भी एंड्रॉइड 4.3.1 (18) से थे जो मैंने देखा था कि जो ऐप एक्शनबेरक्टिविटी से अपनी गतिविधियों को प्राप्त कर रहे थे वे उपरोक्त त्रुटि के साथ दुर्घटनाग्रस्त हो गए जो अभी भी नहीं चले थे।

इसलिए साधारण फिक्स था कि केवल एंड्रॉइड एसडीके बिल्ड टूल्स 18 के बजाय नवीनतम एंड्रॉइड एसडीके बिल्ड टूल्स 21.1.2 का उपयोग करें, जो किसी भी तरह से डिफ़ॉल्ट लगता है।

इसलिए अपराधी को अप्पोमपैट लाइब्रेरी लगती है, जिसका उपयोग मैं एक्शनबार पिछड़ेपन के लिए करता हूं।

और वैसे भी : एप्कोम्पैट लाइब्रेरी का उपयोग करके मुझे सेट / फिक्स करना पड़ा: $SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties target=android-21(जो कुछ अन्य उपयोगी पोस्ट में अनुशंसित था और जिसका डिफ़ॉल्ट रूप से 19 का मूल्य है)


1

मेरे पास विंडोज पर एक ही मुद्दा था। मैंने परियोजना के लिए पथ का नाम बदलकर कुछ जगह रख दी थी।

सुनिश्चित करें कि आपके प्रोजेक्ट के पथ में स्थान नहीं है।


आप किस रास्ते की बात कर रहे हैं?
गुणवत्ता उत्प्रेरक


0

मेरे पास यह मुद्दा था, कई कारणों से उठाया गया था, लेकिन मैं इसे आपके स्टैकट्रेस में देखता **Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[**हूं " ", मैंने .classpathकाम करना बंद करने से पहले मेरे अंदर एक भिन्नता पाई ।

 <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

मैंने लाइन जोड़ दी है:

<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>

यह अंतिम संस्करण है:

  <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>

अब यह काम कर रहा है! =)


0

मेरे पास एक ही सटीक मुद्दा था। जैसा कि @weiweia ने सुझाव दिया था, जावा निर्देशिका से कोड को स्थानांतरित करें मेरे लिए काम किया src। मैंने प्रोजेक्ट -> गुण -> जावा बिल्ड पाथ -> ऑर्डर और एक्सपोर्ट से एंड्रॉइड डिपेंडेंसी को भी हटा दिया, और केवल एंड्रॉइड स्क्रीन में लाइब्रेरी प्रोजेक्ट्स को शामिल करने के लिए सुनिश्चित किया।


0

मुझे यह समस्या काफी समय से थी, और हर किसी की तरह ऊपर दिए गए उत्तर मेरी परियोजना पर लागू नहीं होते थे।

अपनी परियोजना में मैंने अपनी परियोजना से एक परियोजना को जोड़ा था और यह हर बार ClassDefNotFoundError को फेंक रहा था, जबकि दूसरी परियोजना के लिए कुछ कोड निष्पादित किया गया था।

तो यह था मेरा उपाय। मैं अपने प्रोजेक्ट और जावा बिल्ड पाथ के प्रोजेक्ट गुणों के लिए गया था। "प्रोजेक्ट" -टैब और "लिंक सोर्स" को दूसरे प्रोजेक्ट के src- फोल्डर से मेरे अपने प्रोजेक्ट में दबाया और एक नए फोल्डर का नाम "core-src" रखा।

उम्मीद है कि यह समाधान किसी की मदद करे


0

मेरी भी यही समस्या थी। मैं Xamarin.Android का उपयोग कर रहा हूं।

मेरे मामले में समस्या यह थी कि मैंने संस्करणकोड और संस्करणनाम बदल दिया।

मुझे कोई समस्या नहीं थी जब मैंने उन्हें इस तरह सेट किया था:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pac.ka.ge" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">

समस्या तब दिखाई दी जब मैंने इसे इसे बदल दिया (संस्करणकोड 2 और संस्करणनाम 0.0.1):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="0.0.1" android:installLocation="auto">

मैंने संस्करण 2 और संस्करण नामांक 1 को परिवर्तित करके इस मुद्दे को तय किया। 1.0.0.1, जैसे:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="1.0.0.1" android:installLocation="auto">

मैं अनिश्चित हूं कि यह एक समस्या क्यों थी, हो सकता है कि एंड्रॉइड कम संस्करण को पसंद नहीं करता है एक उच्च संस्करण के साथ नामकरण?

मुझे http://developer.android.com/guide/topics/manifest/manifest-element=#name पर निम्नलिखित मिला

Android: versionCode एक आंतरिक संस्करण संख्या। यह संख्या केवल यह निर्धारित करने के लिए उपयोग की जाती है कि क्या एक संस्करण दूसरे की तुलना में अधिक हाल का है, उच्च संख्याओं के साथ और अधिक हाल के संस्करणों का संकेत है। यह उपयोगकर्ताओं को दिखाई जाने वाली संस्करण संख्या नहीं है; उस नंबर को versionName विशेषता द्वारा सेट किया गया है। मान को पूर्णांक के रूप में सेट किया जाना चाहिए, जैसे "100"। आप इसे तब तक परिभाषित कर सकते हैं जब तक आप चाहें, जब तक कि प्रत्येक क्रमिक संस्करण में अधिक संख्या न हो। उदाहरण के लिए, यह एक बिल्ड नंबर हो सकता है। या आप "xy" प्रारूप में एक संस्करण संख्या को "x" और "y" को अलग और निचले और ऊपरी 16 बिट्स में अलग करके एक पूर्णांक में अनुवाद कर सकते हैं। या आप बस एक नया संस्करण जारी होने पर हर बार संख्या बढ़ा सकते हैं।

Android: versionName उपयोगकर्ताओं को दिखाई जाने वाली संस्करण संख्या। इस विशेषता को एक कच्चे स्ट्रिंग या एक स्ट्रिंग संसाधन के संदर्भ के रूप में सेट किया जा सकता है। उपयोगकर्ताओं को प्रदर्शित करने के लिए स्ट्रिंग का कोई अन्य उद्देश्य नहीं है। वर्जनकोड विशेषता आंतरिक रूप से उपयोग किए जाने वाले महत्वपूर्ण संस्करण संख्या को रखती है।


0

बस के मामले में किसी को भी मेरे रूप में एक ही समस्या का सामना करना पड़ता है और कोई सुझाव का जवाब यहाँ मदद करता है।

मेरे लिए इसका कारण यह था कि एंड्रॉइड स्टूडियो रिफैक्टर छोटी गाड़ी है। मैंने एक वर्ग के बाहर एक इनरक्लास को स्थानांतरित किया, जो एक दृश्य था और इसलिए एक xml भी था, जहां सीधा रास्ता निर्धारित किया गया था। इस रास्ते से स्टूडियो नहीं मिलेगा! और कोई त्रुटि नहीं फेंकी जाएगी।

आशा है कि यह किसी को भी मदद करता है। चीयर्स।


0

हमारे मामले में हम वैग्रंट संस्करण को संकलित करना चाहते थे और इसमें भी त्रुटि थी। हमने इसे clean projectऔर rebuild projectबिल्ड मेनू में तय किया है


0

मैंने डिवाइस को फिर से शुरू किया और ऐप चला दिया। इसने बिना किसी मुद्दे के काम किया। आशा है कि यह किसी की मदद करता है :)


0

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


0

मुझे यह समस्या कई बार हुई थी और अक्सर मैंने आश्रितों के साथ कुछ गलत नहीं किया।

यह जांचने के लिए हमेशा एक अच्छा विचार है कि क्या यह 'नहीं मिला' वर्ग अंतिम एपीके में मौजूद है। यदि ऐसा है, तो जैसा कि मेरे मामलों में हुआ, समस्या आमतौर पर है:

ऐसा नहीं है कि दी गई क्लास नहीं मिली है, लेकिन इसे लोड नहीं किया जा सकता क्योंकि इसकी सुपर क्लास गायब है।

जांचें कि क्या आप जिस वर्ग का विस्तार करते हैं, वह उपलब्ध है और फिर अपनी बिल्ड स्क्रिप्ट या निर्भरता को ठीक करने का प्रयास करें।

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