11

由于我将 ADT 更新到 19,我开始出现以下错误。每当我启动我的应用程序时都会出现问题。我检查了所有与此相关的以前的帖子,但似乎没有一个有帮助。任何想法将不胜感激......

我的设置

  1. 我目前在 Windows 7 64 位中有 ADT 18、SDK 19、elcipse。
  2. 我使用制作 ashare.jar 的库项目,我所有的外部 jar(即保管箱、公共编解码器)都在库项目(Ashare)的“libs”文件夹中。
  3. 我不使用proguard。

我们如何看待这个问题。

  1. 在 Eclipse > {MyProject} > 右键单击​​ > Android 工具 > 导出签名的应用程序包中创建 apk
  2. 使用“adb install XXX.apk”在模拟器或 dev.phone 中安装 apk
  3. 启动应用程序。然后,砰。它抛出错误。

一些值得注意的事情是

  1. 在我将 Eclipse 中的 ADT 更新到版本 18 后,它开始发生
  2. 仅当我制作签名的 apk 并在模拟器或 dev.phone 中运行它时才会发生这种情况。
  3. 如果我使用 {MyProject} > Right click > Run As > Android Application 运行我的应用程序,我看不到问题
  4. 当我检查 classes.dex 内部时,我发现那里缺少一些类。我不确定,但我觉得构建过程不包括 classes.dex 中的所有类
  5. 在导出过程中,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 日更新 - 暂时解决

  • 我找到了临时解决方案。在运行“导出签名的应用程序包”之前,我做了“清理”,没有选中“自动构建”选项。然后,我再也看不到错误了。我不知道为什么它有效。如果您有任何想法,请告诉我。
4

4 回答 4

2

将您的外部 jar 放在 libs 目录中。你可以看看这个链接

于 2012-05-07T17:11:38.110 回答
1

我遇到了同样的问题,尽管我按照lujop 提到的链接中的描述做了所有事情。以下是缺少的内容:

  1. 右键单击您的项目>构建路径>配置构建路径...
  2. 单击“订购和导出”选项卡
  3. 勾选您所指的库(Android xxx、Android 依赖项)和其他项目旁边的复选框
  4. 清理你的项目
  5. 应该是这样

我希望这会有所帮助!

于 2012-05-12T10:34:02.503 回答
0

这也让我发疯了一整天,才意识到清单中愚蠢的我应用程序名称是错误的。对于我的应用程序名称: android:name="com.diack.locdatafeeds"

它缺少我的主要活动 android:name="com.diack.locdatafeeds.Mainactivity"

希望它可以帮助某人

于 2013-11-29T16:31:22.040 回答
0

我也有这个。这是我的解决方法。按照这里: http ://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

使没有“引用库”。如果有任何右键单击它们并从构建路径中删除。该文件夹现在应该消失了,您应该只剩下“Android Dependencies”

于 2012-11-03T01:10:03.917 回答