Actionscript 3 构建Adobe本机扩展时,第三方类文件上的NoClassdefFoundError

Actionscript 3 构建Adobe本机扩展时,第三方类文件上的NoClassdefFoundError,actionscript-3,apache-flex,actionscript,noclassdeffounderror,air-native-extension,Actionscript 3,Apache Flex,Actionscript,Noclassdeffounderror,Air Native Extension,我正在构建一个具有第三方JAR依赖项的Adobe本机扩展(ANE)。我要确保第三方类文件被提取并打包在电子JAR中(如回答中所述) 但是,当我为我的应用程序构建最终的android APK时,classes.dex中缺少这些类。似乎ADT正在以某种方式剥离它们。值得一提的是,我使用的第三方JAR是用Java 1.7构建的,我使用的是Java 1.6。不确定这是否是最理想的做法,但我通过将$FLEX\u AIR\u SDK\u HOME/lib/android/bin/dx.JAR中的dx.JAR

我正在构建一个具有第三方JAR依赖项的Adobe本机扩展(ANE)。我要确保第三方类文件被提取并打包在电子JAR中(如回答中所述)


但是,当我为我的应用程序构建最终的android APK时,classes.dex中缺少这些类。似乎ADT正在以某种方式剥离它们。值得一提的是,我使用的第三方JAR是用Java 1.7构建的,我使用的是Java 1.6。

不确定这是否是最理想的做法,但我通过将$FLEX\u AIR\u SDK\u HOME/lib/android/bin/dx.JAR中的dx.JAR替换为android构建工具版本20中的dx.JAR解决了这个问题。这个dx工具并没有剥离java主要版本51的类。

如果没有太多内容,我建议您尝试使用与您尝试使用的JAR相同的java版本编译您的ANE。似乎是明显的第一步,但我现在没有选择。这个项目相当大,对Java1.6有一些依赖性。目前,我正在使用dex2jar()工具将所需的类手动注入到最终的APK中并重新签名。不过,如果我不必这样做就好了,因为我想在IntelliJ Idea 13中进行奢侈的调试。Java 1.6有什么1.7没有的呢?长短不一。我们不可能知道您试图添加的1.7 JAR中缺少了什么,因为您甚至没有给我们一个指向它的链接。我现在的做法是获取1.7JAR的源代码,使用1.6JDK将其放入Eclipse这样的IDE中,查看缺少哪些类,添加它们,重新编译JAR。你无法回避这样一个事实:类丢失了,你必须如何添加它们。这不是1.7比1.6更重要,而是意味着在我们的CI机器上更新Java,在我们的maven存储库上重建工件。在我们仅有的短短时间里,这是一个很大的努力。