我遇到了一个可悲的似乎是Android的常见问题:启动时ClassNotFoundException为应用程序类。我已经尝试了所有的东西(包括声称已尝试过所有内容的其他已接受的答案)。这仅在我导出已签名的APK时发生;使用调试器就好了。让我适合的是它不是由其他人的问题引起的。以下是正确的:
这个问题也很短暂。有时候第一次创建“有效”的APK,而其他时候需要10次以上的重新排序构建/导出选项卡,删除/ bin等等。我应该注意到它实际上并不重要。 /导出是,只有我改变它。但这太荒谬了 - 我没有时间每次构建都这样做。
这是堆栈跟踪(注意:我必须将所有内容的名称清理为“公司”):
E/AndroidRuntime(17678): FATAL EXCEPTION: main
E/AndroidRuntime(17678): Process: com.company.page, PID: 17678
E/AndroidRuntime(17678): java.lang.RuntimeException: Unable to instantiate application com.company.page.MyApplication:
java.lang.ClassNotFoundException: Didn't find class "com.company.page.MyApplication" on path: DexPathList[[zip file "
/data/app/com.company.page-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.company.page-1, /vendor/lib, /system/
lib]]
E/AndroidRuntime(17678): at android.app.LoadedApk.makeApplication(LoadedApk.java:507)
E/AndroidRuntime(17678): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4301)
E/AndroidRuntime(17678): at android.app.ActivityThread.access$1500(ActivityThread.java:135)
E/AndroidRuntime(17678): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
E/AndroidRuntime(17678): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(17678): at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(17678): at android.app.ActivityThread.main(ActivityThread.java:5001)
E/AndroidRuntime(17678): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(17678): at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(17678): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/AndroidRuntime(17678): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/AndroidRuntime(17678): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(17678): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.company.page.MyApplicatio
n" on path: DexPathList[[zip file "/data/app/com.company.page-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.comp
any.page-1, /vendor/lib, /system/lib]]
E/AndroidRuntime(17678): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(17678): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
E/AndroidRuntime(17678): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
E/AndroidRuntime(17678): at android.app.Instrumentation.newApplication(Instrumentation.java:975)
E/AndroidRuntime(17678): at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
E/AndroidRuntime(17678): ... 11 more
这是我的申请。我有一个更复杂的,但我想简化一些事情。可悲的是,它没有帮助。
package com.company.page;
import android.app.Application;
public class MyApplication extends Application
{
}
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.page"
android:versionCode="1"
android:versionName="0.01" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:name="com.company.page.MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service android:name="com.aylanetworks.aaml.AylaExecuteRequest" >
</service>
<activity
android:name="com.company.page.ui.MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name="com.company.page.ui.InitActivity"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="landscape"
android:windowSoftInputMode="stateHidden" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这是我的订单和导出标签:
必须有一个真正的解决方案。有人解决了吗?