Android गतिविधि ClassNotFoundException - सब कुछ आज़माया


82

मैंने अभी एक ऐप को एक फ्रेमवर्क लाइब्रेरी और एक एप्लिकेशन में बदल दिया है, लेकिन अब जब मैं कोशिश करता हूं और एमुलेटर में ऐप शुरू करता हूं तो मुझे निम्न त्रुटि स्टैक ट्रेस मिलता है:

06-02 18:22:35.529: E/AndroidRuntime(586): FATAL EXCEPTION: main
06-02 18:22:35.529: E/AndroidRuntime(586): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.matthewrathbone.eastersays/com.matthewrathbone.eastersays.EasterSimonSaysActivity}: java.lang.ClassNotFoundException: com.matthewrathbone.eastersays.EasterSimonSaysActivity in loader dalvik.system.PathClassLoader[/data/app/com.matthewrathbone.eastersays-1.apk]
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Looper.loop(Looper.java:123)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.main(ActivityThread.java:4627)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invokeNative(Native Method)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invoke(Method.java:521)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-02 18:22:35.529: E/AndroidRuntime(586):  at dalvik.system.NativeStart.main(Native Method)
06-02 18:22:35.529: E/AndroidRuntime(586): Caused by: java.lang.ClassNotFoundException: com.matthewrathbone.eastersays.EasterSimonSaysActivity in loader dalvik.system.PathClassLoader[/data/app/com.matthewrathbone.eastersays-1.apk]
06-02 18:22:35.529: E/AndroidRuntime(586):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
06-02 18:22:35.529: E/AndroidRuntime(586):  ... 11 more

आमतौर पर इसका मतलब है कि मैनिफ़ेस्ट फ़ाइल किसी तरह से गलत है, लेकिन मैंने वह सब कुछ डबल चेक कर लिया है जिसके बारे में मैं सोच सकता हूं।

यहाँ मेरी गतिविधि कक्षा है:

package com.matthewrathbone.eastersays;

import android.os.Bundle;

import com.rathboma.simonsays.Assets.Season;
import com.rathboma.simonsays.SeasonPicker;
import com.rathboma.simonsays.SimonSaysActivity;

    public class EasterSimonSaysActivity extends SimonSaysActivity {

      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      }

      @Override
      protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
      }

      @Override
      public SeasonPicker getSeasonPicker() {
       return new SeasonPicker(){
        @Override
        public Season getSeason() {
          // TODO Auto-generated method stub
          return Season.EASTER;
        }
       };
      }
    }

जैसा कि आप देख सकते हैं, यह घोषणा में सही ढंग से सूचीबद्ध है:

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

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".EasterSimonSaysActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

मुझे नहीं पता कि इसे कैसे ठीक किया जाए, और किसी भी मदद की सराहना करेंगे। मैंने इस विशेष व्यवहार को देखे बिना एसओ पर कई समान प्रश्नों को स्कैन किया है।

और जानकारी:

  • मैंने जेनरेट की गई एपीके के अंदर जाँच की है और क्लास में classes.dex फ़ाइल में एक प्रविष्टि है
  • मैंने ग्रहण में प्रोजेक्ट की सफाई / निर्माण की कोशिश की है
  • मैंने एक पूरी तरह से नई डिवाइस छवि का उपयोग करने की कोशिश की है, जिसकी एपीके की प्रतिलिपि पहले से ही नहीं है
  • मैंने लाइब्रेरी प्रोजेक्ट को एक नियमित जावा में बदल दिया है, फिर एंड्रॉइड प्रोजेक्ट में वापस बदल दिया है, कोई अंतर नहीं है
  • प्रकट करने के लिए सार SimonSaysActivity जोड़ने से कोई फर्क नहीं पड़ता।
  • मैंने हर निर्भरता को एक एंड्रॉइड लाइब्रेरी प्रोजेक्ट बनाने की कोशिश की है, और जिस एंड्रॉइड संस्करण की उन्हें आवश्यकता है, उसे सिंक्रनाइज़ करना, यह मदद नहीं करता है

समाधान मिला (नीचे देखें)। उन सभी के लिए जिन्होंने एक उत्तर / टिप्पणी पोस्ट की है: आप सभी रॉक, मुझे समस्याओं के माध्यम से काम करने में मदद करने के लिए धन्यवाद!

ऐसा लगता है कि यह एक एसडीके टूल्स अपग्रेड द्वारा पेश किया गया है। इस लिंक के लिए नीचे दिए गए @Nick पर धन्यवाद: http://iqadd.com/item/noclassdeffounderror-adt-fix


1
पुस्तकालय या अनुप्रयोग में आपकी गतिविधि है?
जेशुरुन

यह आवेदन में है। यह पुस्तकालय परियोजना में एक आधार गतिविधि का विस्तार करता है।
मैथ्यू रथबोन

क्या आप चींटी के साथ या ADT के साथ निर्माण करते हैं? ऐसा लगता है कि डीएक्स फ़ाइलों में पुस्तकालय कक्षाएं नहीं होती हैं।
टॉमस गावेल

त्रुटि का अर्थ है कि आपकी गतिविधि का स्थान com.matthewrathbone.eastersays.com.matthewrathbone.eastersays.EasterSimonSaysActivity है - स्पष्ट रूप से सही नहीं है। प्रोजेक्ट पैकेज में एक पैकेज स्तर जोड़ने का प्रयास करें जो लाइब्रेरी में मौजूद नहीं है ... जैसे ... Eastersays.myapp.EasterSimonSaysActivity और com.matthewrathbone.eastersays.myapp को मेनिफेस्ट में पैकेज के रूप में निर्दिष्ट करें। लेकिन प्रोजेक्ट में पथ को लाइब्रेरी फ्रेमवर्क पथ से अलग रखने के लिए लाइब्रेरी में 'myapp' स्तर को न जोड़ें।
गुन्नार कार्लसन

जवाबों:


148

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

जैसा मैंने सोचा था वैसा ही है, यह सब है कि आप एंड्रॉइड मेन प्रोजेक्ट में अपने एंड्रॉइड लाइब्रेरी प्रोजेक्ट को कैसे संदर्भित करते हैं, एक साधारण ग्रहण कॉन्फ़िगरेशन सेटिंग्स।

गलत तरीका:
राइट क्लिक मुख्य परियोजना, चुनें Properties -> Java Build Path -> Projects -> Add..., यह एंड्रॉइड लाइब्रेरी प्रोजेक्ट को एंड्रॉइड मुख्य परियोजना के निर्माण पथ में एक निर्भरता परियोजना के रूप में जोड़ता है, यह काम नहीं करता है। यदि सभी आवश्यक एंड्रॉइड-संबंधित संसाधनों को मुख्य परियोजना में परिभाषित किया गया है, तो आपको संकलन समय पर कोई त्रुटि नहीं मिलेगी, लेकिन जब एप्लिकेशन चलाते हैं, तो आपको प्रश्न में वर्णित अपवाद मिलता है।

सही तरीका:
मुख्य Properties -> Androidअनुभाग पर राइट क्लिक करें, चुनें , लाइब्रेरी सेक्शन में, अपने Android लाइब्रेरी प्रोजेक्ट को यहाँ जोड़ें। आधिकारिक देव गाइड देखें एक पुस्तकालय परियोजना को संदर्भित करना । इससे आपकी सारी समस्या ठीक हो जानी चाहिए। यह भी ध्यान दें कि आपको वास्तविक एंड्रॉइड लाइब्रेरी प्रोजेक्ट के सापेक्ष पथ संदर्भ का उपयोग करना है, जैसा कि लाइब्रेरी प्रोजेक्ट - डेवलपमेंट विचार में कहा गया है ।

उम्मीद है की यह मदद करेगा।


1
तुम मेरे दोस्त एक प्रतिभाशाली हो। इस बारे में दिलचस्प बात यह है कि मैं हमेशा एक पुस्तकालय 'गलत तरीके' से शामिल था, और यह काम किया। इसलिए जब मैंने दो पुस्तकालयों में विचार किया तो मुझे लगा कि यह कुछ ऐसा है जिसे मैंने अलग तरीके से किया है। आपने मुझे काम के घंटे और घंटे बचाए हैं।
मैथ्यू रथबोन

मजेदार बात यह है कि यह पहले काम कर रहा था, मुझे लगता है कि मेरे sdk टूल्स को अपग्रेड करने से व्यवहार बदल गया। यह बहुत गैर-स्पष्ट था।
मैथ्यू राथबोन

3
हाँ, SDK टूल्स को> ADT 17 में अपडेट करने से वर्तमान ADT- संस्करण पुस्तकालयों को संभालने के तरीके में बदलाव के कारण यह त्रुटि आई है। बाहर की जाँच करें: iqadd.com/item/noclassdeffounderror-adt-fix
Nick

2
ADT 22 को अपडेट करना एक समान मुद्दा दिया: stackoverflow.com/questions/16596969/…
नील्स

7
क्या कोई मुझे बताएगा कि मुझे कहां मिल सकता है Properties? मैं इसे कहीं भी खोजने के लिए प्रतीत नहीं कर सकता।
jlively

8

मैंने आपके द्वारा दिए गए कोड का परीक्षण किया है, और यह ठीक काम करता है। "सिमोनसएक्टिविटी को बढ़ाता है" को केवल "फैली हुई गतिविधि" को बदलने की कोशिश करें और अपने लिए देखें कि यह काम करता है।

कारण यह है कि यह काम नहीं करता है या तो साइमनसेक्टिविटी एक्टिविटी का विस्तार नहीं करता है (जो मुझे नहीं लगता कि आपने यह गलती की है), या बिल्ड पथ का क्रम गलत है।

निर्माण पथ के आदेश पर जाने के लिए, यहां जाएं:

project->properties->Java build path->order and export .

मेरा मूल आदेश है: प्रोजेक्ट src, प्रोजेक्ट जीन, android 4.0.3, Android निर्भरताएं।

यह समस्या आमतौर पर तब होती है जब आप पुस्तकालयों का उपयोग करते हैं।


तो आप सही कह रहे हैं, अगर मैं गतिविधि को सीधे काम करता हूं। मेरा बिल्ड ऑर्डर आपका मेल खाता है, इसलिए मुझे इसे ठीक करने का तरीका नहीं मिल रहा है। कोई अन्य विचार?
मैथ्यू रथबोन

यह वास्तव में अजीब है। sdk & adt को अपडेट करने का प्रयास करें। कृपया, मुझे बताएं कि क्या कई पुस्तकालय परियोजनाएं (या जार फाइलें, या दोनों) हैं जो आपके ऐप का उपयोग करती हैं। यदि हां, तो निर्माण पथ के आदेश के साथ थोड़ा खेलने की कोशिश करें (मैं पुस्तकालयों को पहले रखने की कोशिश करूंगा)। इसके अलावा, मेरे पास एक और सवाल है: क्या आपने एक वर्ग बनाया था जिसे "गतिविधि" कहा जाता है और शायद आपने इसे एंड्रॉइड के बजाय बढ़ाया है?
एंड्रॉयड डेवलपर

2 पुस्तकालय परियोजनाएं हैं, दूसरा (इंजन) सिमोंस और एंड्रॉइड प्रोजेक्ट दोनों पर निर्भर है। मैंने निर्माण क्रम के हर संयोजन की कोशिश की है, साइमनसेज़ से इंजन परियोजना का निर्यात करना। आपके प्रश्न का उत्तर: मेरे पास कहीं भी गतिविधि नामक एक वर्ग नहीं है।
मैथ्यू रथबोन

इंजन कोर है। अन्य परियोजनाओं को इसका उपयोग करना चाहिए और इसके विपरीत नहीं। केवल वह प्रोजेक्ट जो एक एंड्रॉइड प्रोजेक्ट है (जिसका अर्थ लाइब्रेरी प्रॉजेक्ट नहीं है) में वह मेनिफ़ेस्ट होना चाहिए जिसमें सभी गतिविधियों, सेवाओं, आदि का घोषणापत्र शामिल हो ... एंड्रॉइड लाइब्रेरी प्रोजेक्ट्स (वर्तमान में) पर प्रकट होने के बहुत उद्देश्य नहीं हैं (अधिक जानकारी के लिए इसे देखें: stackoverflow.com/a/10445630/878126 )
एंड्रॉइड डेवलपर

1
उनके पास होना चाहिए। यह सिर्फ इतना है कि मैनिफ़ेस्ट फ़ाइल बहुत छोटी हो सकती है और इसमें लगभग कुछ भी शामिल नहीं है। Project.properties फ़ाइल (प्रत्येक प्रोजेक्ट में) की जाँच करें कि इसका लक्ष्य sdk 15 है क्योंकि यह वर्तमान में नवीनतम संस्करण है। यदि आप चाहें, तो आप मुझे PM बना सकते हैं और मैं परियोजनाओं को ठीक कर दूंगा।
Android डेवलपर

2

मैंने अभी एक ऐप को एक फ्रेमवर्क लाइब्रेरी और एक एप्लिकेशन में बदल दिया है।

मुझे पूरी तरह से यकीन नहीं है कि आप यहां क्या कहना चाह रहे हैं, लेकिन इस तथ्य का कि आपने यहां "रिफैक्टर्ड" शब्द का इस्तेमाल किया है, मुझे विश्वास दिलाता है कि आप लाइब्रेरी प्रोजेक्ट की अवधारणा को गलत समझ रहे हैं।


पुस्तकालय परियोजनाएँ क्या हैं :

एक पुस्तकालय परियोजना एक विकास परियोजना है जिसमें साझा स्रोत कोड और संसाधन शामिल हैं। अन्य एंड्रॉइड प्रोजेक्ट्स लाइब्रेरी प्रोजेक्ट को संदर्भित कर सकते हैं और संकलन समय पर अपने .apk फ़ाइलों में इसके संकलित स्रोतों को शामिल कर सकते हैं।

पुस्तकालय परियोजनाएं क्या नहीं हैं :

एक लाइब्रेरी प्रोजेक्ट एक मानक एंड्रॉइड प्रोजेक्ट से भिन्न होता है जिसमें आप इसे सीधे किसी एकल .apkफ़ाइल में संकलित नहीं कर सकते हैं और इसे एंड्रॉइड डिवाइस पर चला सकते हैं। आप लाइब्रेरी प्रोजेक्ट के रूप में एंड्रॉइड प्रोजेक्ट का उपयोग नहीं कर सकते हैं, और उसके बाद एक और एंड्रॉइड प्रोजेक्ट लाइब्रेरी प्रोजेक्ट का विस्तार करता है। यह उस तरह से काम नहीं करता है।


उस ने कहा, मैं आपके पुस्तकालय प्रोजेक्ट की संरचना और बीमा की जांच करूंगा कि आपने इसे सही तरीके से स्थापित किया है । साझा कोड / संसाधनों को संग्रहीत करने के लिए अपनी लाइब्रेरी का उपयोग करना ठीक है, लेकिन यदि आपका पुस्तकालय ऐसा व्यवहार करने का प्रयास कर रहा है जैसे कि वह .apkलाइब्रेरी प्रोजेक्ट के भीतर ही अलग था, तो आपने शायद कुछ गलत किया है। मेरा मानना ​​है ClassNotFoundExceptionकि अगर ऐसा होता तो फेंक दिया जाता। समस्या को ठीक करने के लिए, मैं Android प्रोजेक्ट को लाइब्रेरी प्रोजेक्ट में कनवर्ट करने के बजाय केवल स्क्रैच से लाइब्रेरी प्रोजेक्ट बनाऊंगा। यह आपको छोटे, कष्टप्रद बगों में दौड़ने से रोकेगा।

यदि आपको अभी भी परेशानी हो रही है तो अधिक कोड पोस्ट करने के लिए स्वतंत्र महसूस करें। आपको अपने पुस्तकालय प्रोजेक्ट की संरचना (और उद्देश्य) पर थोड़ा और विस्तार करना चाहिए ... आपने एक का उपयोग करने का फैसला क्यों किया, आपने कैसे बनाया, आदि।


हाँ, मैं व्यक्तिगत परियोजनाओं को सही ढंग से मान रहा था, यह उस तरीके से था जिसमें मैं पुस्तकालय परियोजनाओं का उल्लेख कर रहा था जो वास्तव में समस्या का कारण था। हालांकि भयानक मदद के लिए धन्यवाद!
मैथ्यू रथबोन

np ... यह एक शॉट के लायक था, हाहा
एलेक्स लॉकवुड

2

ग्रहण केपलर (मैक) के लिए: नियंत्रण-क्लिक परियोजना -> Android उपकरण -> समर्थन पुस्तकालय जोड़ें


इसने मेरे लिए इसे ठीक कर दिया। एक पुस्तकालय के रूप में सिर्फ v4-support.jar सहित काम नहीं किया।
सफेद

2

मुझे जिस प्रॉजेक्ट पर काम करना था, उसके साथ यह समस्या थी, हालांकि मेरा मामला अलग था। यदि कोई भी व्यक्ति अभी भी अपनी समस्या का समाधान नहीं खोज पा रहा है, तो यह जाँचने का प्रयास करें:

ग्रहण में:

Project properties -> Java Build Path -> Source tab

अंदर आपको अपनी परियोजना (और / जीन ) के निर्माण के लिए हर बार संकलित किए जाने वाले सभी स्रोत फ़ोल्डरों के साथ एक सूची मिलेगी और उत्पन्न APK में डाल दिया जाएगा । tipically:

>MyProject/gen
>MyProject/src

आप जो सुनिश्चित करना चाहते हैं वह यह है कि आपके प्रत्येक स्रोत फ़ोल्डर के अंदर (बहिष्कृत / जीन , इसलिए इस मामले में केवल / src ) आइटम Output folderडिफ़ॉल्ट आउटपुट फ़ोल्डर में कविता कर रहा है, जो है MyProject/bin/classes। आउटपुट फ़ोल्डर का चयन करके और बटन के सही सेट से निकालें पर क्लिक करके ऐसा करें (यह डिफ़ॉल्ट फ़ोल्डर को इंगित करेगा)।

यदि आप उप-आउटपुट आउटपुट फ़ोल्डर नहीं देख सकते हैं, तो सूची के ठीक नीचे "स्रोत फ़ोल्डर के लिए आउटपुट फ़ोल्डर की अनुमति दें" जांचें


1

यदि आपने सभी संकेत (निजी पुस्तकालयों आदि की जांच की) का पालन किया और अभी भी बग है। एप्लिकेशन-टैग में इस पंक्ति के कोड के लिए अपनी उपस्थिति की जाँच करें

    android:hasCode="false" 

इसे हटाओ और खुश रहो। (मैं अंत में था) :)


बहुत बहुत धन्यवाद!! यह मुझे पागल बना रहा था। यह मेरे लिए काम करता था, मेरे पास एक डमी मेनऐक्टिविटी थी जो बस इतना लोड कर रही थी। अपनी टिप्पणी खोजने के लिए 2 दिन का समय लिया!
एड्रियनट्यूट

1

Java में classNotFoundException, java.lang.Exception और सबक की एक उपवर्ग है जब जावा वर्चुअल मशीन किसी विशेष वर्ग को लोड करने की कोशिश करता है और क्लासपाथ में अनुरोधित वर्ग नहीं मिला है।

और पढ़ें: http://javarevisited.blogspot.com/2011/08/classnotfoundexception-in-java-example.html#ixzz3yX3WBeFA

एंड्रॉइड प्राइवेट लाइब्रेरी में जाने की कोशिश करेंProject -> Properties -> Java Build Path -> Order & Export और अपने प्रोजेक्ट के लिए और आपके द्वारा उपयोग किए जा रहे अन्य सभी लाइब्रेरी प्रोजेक्ट्स के लिए चेक किया जाए।

ClassNotFoundException से कैसे निपटें

  1. सत्यापित करें कि अनुरोधित वर्ग का नाम सही है और यह उपयुक्त .jar फ़ाइल आपके वर्गपथ में मौजूद है । यदि नहीं, तो आपको इसे स्पष्ट रूप से अपने आवेदन के वर्गपथ में जोड़ना होगा।
  2. यदि आपकी। क्लास फ़ाइल में निर्दिष्ट .jar फ़ाइल मौजूद है, तो आपके एप्लिकेशन की क्लासपाथ ओवरराइड हो रही है और आपको अपने आवेदन द्वारा उपयोग की जाने वाली सटीक क्लासपाथ का पता लगाना होगा।
  3. मामले में अपवाद किसी तीसरे पक्ष वर्ग के कारण होता है, तो आप वर्ग कि अपवाद फेंकता की पहचान करनी चाहिए और उसके बाद, लापता जोड़ने .jar अपने में फ़ाइलों को classpath

1

हालांकि यह सभी के लिए लागू नहीं होगा, मुझे हाल ही में यह समस्या हुई थी क्योंकि मेरा प्रोजेक्ट डिवाइस पर मौजूद साझा लाइब्रेरी के साथ लिंक करने में विफल रहा था। मैं अपने आवेदन में यह बताना भूल गया था कि मेरा आवेदन <uses-library>



0

सिमोनसएक्टिविटी का उपयोग करने वाले कौन से इंटरफेस या पैरेंट क्लास का उपयोग करते हैं / विस्तार करते हैं और क्या वे आपके द्वारा उपयोग किए जा रहे एंड्रॉइड के संस्करण पर उपलब्ध हैं? मैंने ऐसी ही समस्याएं देखी हैं जहां मेरी गतिविधि ने एक एपीआई इंटरफ़ेस लागू किया था जो कि एंड्रॉइड के उपयोग के संस्करण पर उपलब्ध नहीं था।

मेरे मामले में मेरी गतिविधि ने इंटरफ़ेस PopupMenu.OnDismissListener को लागू किया है जो केवल API 14 में उपलब्ध है लेकिन जब मैंने अपने 2.3 डिवाइस पर ऐप चलाया तो मुझे गतिविधि के लिए java.lang.NoClassDefFoundEror अपवाद मिला।


सभी संस्करण समान हैं, Android 2.2।
मैथ्यू रथबोन

0

मुझे एक ही समस्या थी और एक दिन का अधिकांश समय हर तरह की चीजों की कोशिश में बर्बाद हो गया। एक पीसी से तैनात किए जाने पर एप्लिकेशन ढूंढता है लेकिन इस एक पीसी पर नहीं। अंत में यह एक लापता जावा प्रकृति होने के नाते समाप्त हो गया! अजीब बात है कि इसने मुझे जावा निर्माण पथ, आदेश / निर्यात और वह सब दिखाया, लेकिन अभी तक जावा प्रकृति नहीं थी। :( आशा है कि यह किसी और को बहुत समय बचाता है


0

@yorkw द्वारा प्रदान किया गया समाधान बिल्कुल सही है। मेरे पास एक अतिरिक्त मुद्दा था, लेआउट फ़ाइलों में से एक में, मैंने पूर्ण नाम का गलत उल्लेख किया था। इसे होना चाहिए था

<android.support.v4.view.ViewPager xmlns:android="...

बल्कि मैंने इसे डाल दिया था

<android.support.v4.app.view.ViewPager xmlns:android="...

इन्हें हल करने के बाद, इसने अच्छा काम किया।


0

मानो या न मानो, कम से कम 4 घंटे के लिए सब कुछ कोशिश करने के बाद, मेरे लिए फिक्स मेरी परियोजना से Google विश्लेषिकी पुस्तकालय के पुराने संस्करण (2.0) को निकालना था। बेशक, इस पुस्तकालय का एक अद्यतन भी समाधान हो सकता है। तो यह एक निर्भरता जार संस्करण समस्या हो सकती है।


0

मैं इस प्रकार की त्रुटि प्राप्त कर रहा था और मैंने हर चीज की कोशिश की है लेकिन समाधान नहीं मिला है। तब मुझे पता चला कि यदि आप लाइब्रेरी को एअर फ़ाइल के रूप में उपयोग कर रहे हैं तो आपको अपनी एअर लाइब्रेरी की सभी निर्भरताएँ अपने ऐप gradle.build फ़ाइल में जोड़ना होगा। अगर किसी ने समाधान नहीं निकाला तो यह कोशिश करो!


-1

मुझे वही मुद्दा मिल रहा था। लेकिन फिर मैंने एप्लिकेशन की वर्तमान संरचना की जांच की। मैंने पाया कि पुराने एप्लिकेशन संरचना (मुझे समय नहीं पता है कि यह एंड्रॉइड फ्रेमवर्क डेवलपर्स द्वारा बदल दिया गया है) में एक फ़ोल्डर नाम है "lib"जो अब है "libs"। मैं अपनी सभी jar फाइलों को "libs" में माइग्रेट करता हूं और त्रुटि दूर हो जाती है। मुझे आशा है कि यह किसी की मदद कर सकता है :)

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