由于我将 ADT 更新到 19,我开始出现以下错误。每当我启动我的应用程序时都会出现问题。我检查了所有与此相关的以前的帖子,但似乎没有一个有帮助。任何想法将不胜感激......
我的设置
- 我目前在 Windows 7 64 位中有 ADT 18、SDK 19、elcipse。
- 我使用制作 ashare.jar 的库项目,我所有的外部 jar(即保管箱、公共编解码器)都在库项目(Ashare)的“libs”文件夹中。
- 我不使用proguard。
我们如何看待这个问题。
- 在 Eclipse > {MyProject} > 右键单击 > Android 工具 > 导出签名的应用程序包中创建 apk
- 使用“adb install XXX.apk”在模拟器或 dev.phone 中安装 apk
- 启动应用程序。然后,砰。它抛出错误。
一些值得注意的事情是
- 在我将 Eclipse 中的 ADT 更新到版本 18 后,它开始发生
- 仅当我制作签名的 apk 并在模拟器或 dev.phone 中运行它时才会发生这种情况。
- 如果我使用 {MyProject} > Right click > Run As > Android Application 运行我的应用程序,我看不到问题
- 当我检查 classes.dex 内部时,我发现那里缺少一些类。我不确定,但我觉得构建过程不包括 classes.dex 中的所有类
- 在导出过程中,Eclipse 控制台没有错误(我在 Android>Build>Build 输出设置中使用了详细选项)
Java 异常
05-07 08:52:48.336: D/AndroidRuntime(3055): Shutting down VM
05-07 08:52:48.336: W/dalvikvm(3055): threadid=1: thread exiting with uncaught exception (group=0x40a3e1f8)
05-07 08:52:48.340: E/AndroidRuntime(3055): FATAL EXCEPTION: main
05-07 08:52:48.340: E/AndroidRuntime(3055): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.acj0.barcodeexpdemo/com.acj0.barcodeexpdemo.Launcher}: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.os.Handler.dispatchMessage(Handler.java:99)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.os.Looper.loop(Looper.java:137)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-07 08:52:48.340: E/AndroidRuntime(3055): at java.lang.reflect.Method.invokeNative(Native Method)
05-07 08:52:48.340: E/AndroidRuntime(3055): at java.lang.reflect.Method.invoke(Method.java:511)
05-07 08:52:48.340: E/AndroidRuntime(3055): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-07 08:52:48.340: E/AndroidRuntime(3055): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-07 08:52:48.340: E/AndroidRuntime(3055): at dalvik.system.NativeStart.main(Native Method)
05-07 08:52:48.340: E/AndroidRuntime(3055): Caused by: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher
05-07 08:52:48.340: E/AndroidRuntime(3055): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
05-07 08:52:48.340: E/AndroidRuntime(3055): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-07 08:52:48.340: E/AndroidRuntime(3055): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
05-07 08:52:48.340: E/AndroidRuntime(3055): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)
05-07 08:52:48.340: E/AndroidRuntime(3055): ... 11 more
2012 年 5 月 7 日更新
- 我所有的 jar 都在 Library 项目的“libs”文件夹中,我看到它们都包含在“Android Dependencies”中
2012 年 5 月 18 日更新 - 暂时解决
- 我找到了临时解决方案。在运行“导出签名的应用程序包”之前,我做了“清理”,没有选中“自动构建”选项。然后,我再也看不到错误了。我不知道为什么它有效。如果您有任何想法,请告诉我。