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