【问题标题】:NoClassDefFoundError when running APK with custom JAR使用自定义 JAR 运行 APK 时出现 NoClassDefFoundError
【发布时间】:2013-02-04 09:59:35
【问题描述】:

它编译得很好。加载到我的测试设备就好了。当我运行它时,它会崩溃并显示“抱歉,Bat 应用程序 Ear(进程 com.fleenlab.LWPA_EarOfBat)已意外停止。请重试。”在设备屏幕上和一堆“解析失败”和“类链接失败”,然后是 logcat 中的“FATAL EXCEPTION....NoClassDefFound”。

JAR 是我在 Eclipse 上编写的普通 Java。

是的,许多其他人都遇到过同样的问题。

我尝试了那个流行的解决方案 (http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17)。我将我的 JAR 放在 libs 文件夹中。没运气。

我还尝试了变体解决方案:将 JAR 称为外部 JAR 并设置“订购和导出”复选框。仍然没有运气。

我什至反编译了 APK(使用 apktool)来查看类是否被正确打包。他们是。

更多信息 安卓 SDK 工具 R21.0.1 Android SDK Platform-tools R16.0.1 目标 API 8 Eclipse SDK 版本:3.7.2 Debian 挤压

我受阻了。有什么线索吗?

(由于菜鸟还不能发布图片,所以这里是 logcat 转储的最后一点文本形式)

11-30 21:30:44.140: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/Bubble;' failed

11-30 21:30:44.140: W/dalvikvm(926): Unable to match class for part: 'Lorg/fleen/core/diamondGrammar/Bubble;)Ljava/util/List;'

11-30 21:30:44.140: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/DNode; interface 667 'Ljavax/swing/tree/TreeNode;'

11-30 21:30:44.140: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/DNode;' failed

11-30 21:30:44.140: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/Bubble; interface 678 'Lorg/fleen/core/diamondGrammar/DNode;'

11-30 21:30:44.140: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/Bubble;' failed

11-30 21:30:44.150: W/dalvikvm(926): Unable to match class for part: 'Lorg/fleen/core/diamondGrammar/Bubble;)Ljava/util/List;'

11-30 21:30:44.150: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/DNode; interface 667 'Ljavax/swing/tree/TreeNode;'

11-30 21:30:44.150: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/DNode;' failed

11-30 21:30:44.150: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/Bubble; interface 678 'Lorg/fleen/core/diamondGrammar/DNode;'

11-30 21:30:44.150: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/Bubble;' failed

11-30 21:30:44.150: W/dalvikvm(926): Unable to match class for part: 'Lorg/fleen/core/diamondGrammar/Bubble;)Ljava/util/List;'

11-30 21:30:44.150: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/DNode; interface 667 'Ljavax/swing/tree/TreeNode;'

11-30 21:30:44.150: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/DNode;' failed

11-30 21:30:44.150: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/Bubble; interface 678 'Lorg/fleen/core/diamondGrammar/DNode;'

11-30 21:30:44.150: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/Bubble;' failed

11-30 21:30:44.190: W/dalvikvm(926): Unable to match class for part: 'Lorg/fleen/core/diamondGrammar/Bubble;)Ljava/util/List;'

11-30 21:30:44.190: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/DNode; interface 667 'Ljavax/swing/tree/TreeNode;'

11-30 21:30:44.190: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/DNode;' failed

11-30 21:30:44.190: I/dalvikvm(926): Failed resolving Lorg/fleen/core/diamondGrammar/Bubble; interface 678 'Lorg/fleen/core/diamondGrammar/DNode;'

11-30 21:30:44.190: W/dalvikvm(926): Link of class 'Lorg/fleen/core/diamondGrammar/Bubble;' failed

11-30 21:30:44.190: W/dalvikvm(926): Unable to match class for part: 'Lorg/fleen/core/diamondGrammar/Bubble;)Ljava/util/List;'

11-30 21:30:44.240: D/dalvikvm(926): GC_CONCURRENT freed 634K, 53% free 2792K/5831K, external 716K/1038K, paused 2ms+4ms

11-30 21:30:44.560: D/dalvikvm(926): GC_CONCURRENT freed 368K, 51% free 2874K/5831K, external 716K/1038K, paused 2ms+2ms

11-30 21:30:44.660: W/dalvikvm(926): threadid=9: thread exiting with uncaught exception (group=0x40082560)

11-30 21:30:44.660: E/AndroidRuntime(926): FATAL EXCEPTION: Thread-10

11-30 21:30:44.660: E/AndroidRuntime(926): java.lang.NoClassDefFoundError: org.fleen.core.diamondGrammar.Grid

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.LoopingTunnelFlowVFrameBlock_TF0000_Tight.initRootAndCore(LoopingTunnelFlowVFrameBlock_TF0000_Tight.java:90)

11-30 21:30:44.660: E/AndroidRuntime(926):  at org.fleen.loopingTunnelFlowVFrameSequence.LoopingTunnelFlowVFrameBlock_Abstract.<init>(LoopingTunnelFlowVFrameBlock_Abstract.java:100)

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.LoopingTunnelFlowVFrameBlock_TF0000_Tight.<init>(LoopingTunnelFlowVFrameBlock_TF0000_Tight.java:43)

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.LoopingTunnelFlowVFrameSeq_Tight.getBlock(LoopingTunnelFlowVFrameSeq_Tight.java:17)

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.LoopingTunnelFlowVFrameSeq_Tight.<init>(LoopingTunnelFlowVFrameSeq_Tight.java:14)

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.Generator.getSeq(Generator.java:110)

11-30 21:30:44.660: E/AndroidRuntime(926):  at com.fleenlab.LWPA_EarOfBat.Generator$Initializer.run(Generator.java:78)

【问题讨论】:

  • 是否在清单中定义?同时发布完整的输出。
  • 您的意思是在清单中定义 Jar?我会试试的。这是 logcat 输出:
  • 你想要整个输出?它相当大。 Here's the text file
  • 清除所有项目并重试
  • 这是我尝试的第一件事。每次我认为可能有帮助时,我都会清理它们。刚刚再次清理它们......将apk加载到设备中......不。仍然崩溃。

标签: android apk noclassdeffounderror


【解决方案1】:

这是一个依赖关系。 Grid 依赖于 TreeNode,它在 Swing 中,而不在 JAR 中。我的解决方案是摆脱 TreeNode。反正也不是很需要。现在工作正常。

我知道 logcat 说 NoClassDefFound 发生在 Grid,但问题实际上不是缺少 Grid 类定义,而是 Grid 所引用的类缺少定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多