2013-03-13 54 views
0

我最近用ADT 21.1升級了我的eclipse。升級到SDK 21.1和ADT 21.1後的java.lang.ClassNotFoundException

我能夠完美運行的應用程序的調試,但我的智能手機出口的APK並安裝它後永諾崩潰,給後續的錯誤:

java.lang.RuntimeException: Unable to instantiate application 
com.tapcrowd.app.TCApplication: java.lang.ClassNotFoundException: com.tapcrowd.app.TCApplication in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/mnt/asec/com.tapcrowd.ecommercebrasil-1/pkg.apk] 
at android.app.LoadedApk.makeApplication(LoadedApk.java:466) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3264) 
at android.app.ActivityThread.access$2200(ActivityThread.java:117) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:973) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3687) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: com.tapcrowd.app.TCApplication in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/mnt/asec/com.tapcrowd.ecommercebrasil-1/pkg.apk] 
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at android.app.Instrumentation.newApplication(Instrumentation.java:942) 
at android.app.LoadedApk.makeApplication(LoadedApk.java:461) 
... 11 more 

TCApplication在清單正確引用。

我已經嘗試通過將它們放在libs文件夾中,添加外部庫,刪除和添加沒有成功的庫項目。

我該如何防止崩潰?

清單:

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

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

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.FLASHLIGHT" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.SET_DEBUG_APP" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 

    <!-- BEGIN GCM --> 
    <permission 
     android:name="com.tapcrowd.ecommercebrasil.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

    <uses-permission android:name="com.tapcrowd.ecommercebrasil.permission.C2D_MESSAGE" /> 

    <!-- App receives GCM messages. --> 
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 
    <!-- GCM connects to Google Services. --> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <!-- GCM requires a Google account. --> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <!-- Keeps the processor from sleeping when a message is received. --> 
    <uses-permission android:name="android.permission.WAKE_LOCK" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 

    <!-- END GCM --> 

    <uses-feature 
     android:name="android.hardware.telephony" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.camera" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.camera.autofocus" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.location.gps" 
     android:required="false" /> 
    <uses-feature 
     android:name="android.hardware.location" 
     android:required="false" /> 

    <application 
     android:name="com.tapcrowd.app.TCApplication" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar" > 
     <uses-library android:name="com.google.android.maps" /> 

     <service android:name="com.tapcrowd.app.service.UpdateService" /> 
     <service android:name=".GCMIntentService" /> 

     <activity 
      android:name="com.tapcrowd.app.Splash" 
      android:label="@string/app_name" 
      android:launchMode="singleInstance" 
      android:screenOrientation="portrait" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

      ... 
    </application> 

</manifest> 
+0

同樣的問題,與22任何想法版固定呢? – 2013-05-19 11:47:42

+0

我通過使用eclipse完全重新安裝eclipse和android SDK – ePeace 2013-05-21 08:16:00

+0

修復了它,在升級時,我有時會額外運行'檢查更新'並且必須重新運行我想要安裝的某些模塊的更新。不知道爲什麼他們沒有在第一次更新週期中拿起。 – 2013-05-24 13:42:01

回答

0

我通過完全重新安裝Eclipse和Android SDK的位置