java.lang.ClassNotFoundException: पथ पर कक्षा नहीं मिली: dexpathlist

Karthik Sivam 08/21/2017. 13 answers, 93.384 views
java android android c++ android-ndk android-ndk

मैं वर्तमान में एक परियोजना पर काम कर रहा हूं जिसमें मुझे पूरी तरह देशी देशी का उपयोग करना है। यह काम करता है जब मैं Irrlicht इंजन स्रोत से एक नरक उदाहरण उदाहरण चलाने की कोशिश करता हूं। फिर मैं उस उदाहरण के उसी प्रारूप के बाद अपने प्रोजेक्ट में इसका उपयोग करने का प्रयास करता हूं। लेकिन मुझे मिला:

03-14 01:40:05.308: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.irrlicht.example1/android.app.POMActivity}: java.lang.ClassNotFoundException: Didn't find class "android.app.POMActivity" on path: DexPathList[[zip file "/data/app/com.irrlicht.example1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.irrlicht.example1-2, /system/lib]] 

मेरी परियोजना चलाते समय।

यहां मेरी main.cpp फ़ाइल है:

#include #include #include #include "android_tools.h"
#ifdef _IRR_ANDROID_PLATFORM_
void android_main(android_app* app)
{
__android_log_print(4 , "pom" , "nothing");
} 

#अगर अंत

एंड्रॉइड.एमके में:

LOCAL_PATH := $(call my-dir)/..
IRRLICHT_PROJECT_PATH := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := Irrlicht
LOCAL_SRC_FILES := /home/karthik/Android/Essentials/ogl-es/lib/Android/libIrrlicht.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorldMobile1
LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
LOCAL_C_INCLUDES := -I ../../include -I /home/karthik/Android/Essentials/ogl-es/include -I /home/karthik/Android/json/jsoncpp-src-0.5.0/libs/linux-gcc-4.8 -I /home/karthik/Android/json/jsoncpp-src-0.5.0/include/json 
LOCAL_SRC_FILES :=  android_tools.cpp main.cpp
LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid -ldl 
LOCAL_STATIC_LIBRARIES := Irrlicht android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue) 

और मैंने AndroidManifest.xml में गतिविधि का नाम दिया है:

...                 

मैं यहाँ क्या गलती कर रहा हूं? यदि नेकैसरी हो तो मैं पूरा कोड पोस्ट करूंगा।

4 Comments
Siddharth_Vyas 03/14/2014
क्या आप बाहरी बाहरी फाइलों का उपयोग कर रहे हैं?
Karthik Sivam 03/14/2014
@ सिद्धार्थ व्यास नहीं, मैं इसमें बाहरी जार फ़ाइलों का उपयोग नहीं कर रहा हूं।
1 Igor Ganapolsky 08/09/2016
क्या आपका आवेदन बहु-डिस्क्ड है? यदि ऐसा है, तो वह समस्या बताता है।
j2emanue 07/05/2017
जब मैंने एक हस्ताक्षरित एपीके किया तो यह त्रुटि नहीं हुई। बस डीबग करें

13 Answers


mnsalim 05/23/2017.

मुझे एक ही समस्या थी, मेरा समाधान यहां है:

  1. अपनी परियोजना पर राइट क्लिक करें और Properties चुनें।
  2. बाईं ओर मेनू से Java Build Path चयन करें।
  3. Order and Export टैब का चयन करें।
  4. सूची से सुनिश्चित करें कि आपके प्रोजेक्ट में जोड़े गए पुस्तकालय या बाहरी जार checked
  5. अंत में, अपनी परियोजना को साफ करें और चलाएं।

आप यह जवाब भी देख सकते हैं।

4 comments
1 FoxDonut 11/06/2016
यह सवाल का सही समाधान है। मैंने इसे अपने libgdx गेम के साथ उपरोक्त के समान त्रुटियों के साथ परीक्षण किया है। मुझे अपने फोन (सैमसंग गैलेक्सी एस 6) से उत्पन्न लॉग का उपयोग करके इन त्रुटियों को मिला। एक बार जब मैंने इस समाधान को लागू किया, तो मेरे सभी मुद्दों का हल हो गया।
2 Zin Min 03/25/2017
मुझे प्रोजेक्ट के दायाँ क्लिक से गुण नहीं मिल रहे हैं। हो सकता है मैं बेवकूफ हूँ। :(
2 user3036320 04/19/2017
कृपया एंड्रॉइड स्टूडियो समाधान दिखाएं ...
2 Skyler 07/08/2017
मुझे गुण नहीं मिल सकते हैं, कोई भी सूचीबद्ध पृष्ठ पर नेविगेट करने का तरीका समझता है

Sushil 03/14/2014.

यह आपके मामले में समस्या प्रतीत होता है। मेनिफेस्ट में आपकी गतिविधि का सापेक्ष पथ सही नहीं है:

 

इसके साथ प्रतिस्थापित करें:

 

या

 
1 comments
1 Karthik Sivam 03/14/2014
मैंने दोनों की कोशिश की है, यह एक ही अपवाद दिखाता है।

Akash Bisariya 03/06/2017.

मुझे बस देखकर समस्या को समझना चाहिए

dex errors

लेकिन इस मुद्दे को ठीक करने में आधा दिन लगा।
मैं एंड्रॉइड डेवलपर्स पेज के निर्देशों का पालन करके इसे ठीक करता हूं: https://developer.android.com/studio/build/multidex.html

सबसे पहले इसे gradle.build फ़ाइल में जोड़ें:

defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...

    // Enabling multidex support.
    multiDexEnabled true
}

 dependencies {
     compile 'com.android.support:multidex:1.0.0'
 } 

फिर उपरोक्त लिंक पर निर्देशित MultiDexApplication एप्लिकेशन क्लास के साथ एप्लिकेशन क्लास (या AndroidManifest.xml में एप्लिकेशन क्लास घोषित करें या override attachBaseContext() फ़ंक्शन override attachBaseContext()

यह सब कुछ है और यह समस्या हल हो गई।

4 comments
1 milosmns 08/30/2016
मल्टी-डेक्स जोड़ना केवल तब उपयोगी होता है जब आप संदर्भ गणना सीमा (56k) पास करते हैं, और यह लॉलीपॉप से ​​पहले very अस्थिर और अविश्वसनीय है। इसका उपयोग अंतिम उपाय के रूप में समस्याओं को ठीक करने के लिए किया जाना चाहिए।
Akash Bisariya 08/30/2016
तो आपके अनुसार समाधान क्या होना चाहिए
milosmns 08/30/2016
मैं बस इतना कह रहा हूं कि मल्टी-डेक्स इससे मदद करता है जितना अधिक परेशानी का कारण बनता है, जिसे डेवलपर वेबसाइट पर स्पष्ट रूप से बताया गया है। अगर मैं एक था तो मैं यहां जवाब नहीं ढूंढूंगा, क्या मैं?
Akash Bisariya 08/30/2016
ठीक है जानकारी के लिए धन्यवाद, अगर आपको कोई अच्छा समाधान मिला तो कृपया यहां अपडेट करें, यह एक बड़ी मदद होगी।

V. Kalyuzhnyu 07/07/2016.

डिवाइस पर ऐप को हटाने और परियोजना की सफाई मेरे लिए काम करती है


crazyjune 06/13/2014.
  1. बिन फ़ोल्डर हटाएं
  2. लाइब्रेरी के क्रम को बदलें
  3. स्वच्छ और पुनर्निर्माण

मेरे लिए काम किया


Ali Gürelli 10/13/2016.

मैंने इसे एंड्रॉइड स्टूडियो टर्मिनल में: ./gradlew --stop कमांड का उपयोग करके हल किया। इस आदेश को करने के बाद परियोजना को साफ और पुनर्निर्माण करें।


Redman 01/05/2017.

मल्टीडेक्स रखने वाले किसी भी व्यक्ति को यह लिखने में सक्षम बनाता है

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 एक वर्ग 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 इस className को एप्लिकेशन टैग के अंदर लिखें

 

Ashik Abbas 07/26/2017.

मैंने सभी संभावित विकल्पों की कोशिश की लेकिन परिणाम शून्य है। अंत में मुझे सही समाधान मिला जो मेरे लिए सहायक है। फ़ाइल पर त्वरित रन जाने के लिए बस जाएं -> सेटिंग्स -> बिल्ड, निष्पादन, परिनियोजन -> त्वरित रन -> तत्काल रन के लिए चेकबॉक्स अनचेक करें । एक बार अपना एप चलाएं और यह एपीके फ़ाइल ठीक से काम करे ..


Walking Code 05/05/2014.

बस अपने फ़ोल्डर का नाम lib से libs बदलें,

फिर आप अपने प्रोजेक्ट में कुछ त्रुटि अंक देखेंगे, इस दाएं को हल करने के लिए प्रोजेक्ट> पर क्लिक करें

Properties > Java Build Path > libraries :

उस पर लाल निशान वाले सभी लाइब्रेरी को हटाएं, फिर clean your project बाद apply > ok > clean your project । टाडा जादू देखें :)

1 comments
Shubham 10/27/2015
फ़ोल्डर का नाम केवल libs है

Tere Bentikh 09/29/2015.

दिए गए उत्तरों की कोशिश करने के बाद, मुझे एक ही अपवाद के लिए एक और कारण मिला, मुझे पुस्तकालय को जोड़ना था जिसे मैं मैन्युअल रूप से अपनी मुख्य लाइब्रेरी में उपयोग कर रहा हूं

Right click on my main library > 
Properties > 
Android > 
Go to the very bottom of the screen and click (Add) > 
Select my other library that caused the crash >Apply 

इस समाधान से पहले, मैंने ग्रहण में .java फ़ाइल के भीतर से "फिक्स प्रोजेक्ट सेटअप" का उपयोग किया, लेकिन यह काम नहीं किया, इसलिए मुझे इसे मैन्युअल रूप से यहां जोड़ना पड़ा और यह काम करता था


dees91 11/21/2016.

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

1 comments
Petter Friberg 11/21/2016
कृपया कई प्रश्नों के लिए एक ही जवाब न जोड़ें। सर्वश्रेष्ठ का उत्तर दें और शेष को डुप्लीकेट के रूप में फ़्लैग करें। देखें क्या कई प्रश्नों के लिए डुप्लिकेट उत्तर जोड़ने के लिए स्वीकार्य है?

जब आप मल्टीडेक्स का उपयोग कर रहे हैं, तो एप्लिकेशन के बजाय मल्टीडेक्सएपिकेशन के साथ अपनी एप्लिकेशन क्लास को विस्तारित करने का प्रयास करें और 5.0 से नीचे एंड्रॉइड के लिए आवश्यक निम्न विधियों को ओवरराइड करें (क्योंकि 5.0 और मल्टीडेक्स के ऊपर समर्थन)

@Override
protected void attachBaseContext(Context base)
{
    super.attachBaseContext(base);
    MultiDex.install(BaseApplication.this);
} 

और निर्भरताओं में यह जोड़ें

compile 'com.android.support:multidex:1.0.1' 

Shivegeeky 06/23/2017.

मेरी समझ के अनुसार मुझे तत्काल सुविधा के कारण एंड्रॉइड स्टूडियो 2.1 से 2.3 अपडेट करने के बाद समस्या मिलती है जब मैं आउटपुट से एपीके कॉपी करता हूं और एसडीकार्ड में डालता हूं तो मेरा एप्लिकेशन नहीं चलाया जाएगा। इस समस्या के लिए मैं एंड्रॉइड स्टूडियो में एपीके बनाने के लिए बिल्ड विकल्प से एपीके का निर्माण करता हूं।

Related questions

Hot questions

Language

Popular Tags