我在项目中创建了一个java注释处理器(我称之为JavaLibrary),它使用了android.os.Bundle。因此,该项目的gradle.build依赖项中包含以下行:
compile 'com.google.android:android:4.1.1.4'
在gradle.build中,sourceCompatibility
和targetCompatibility
都设置为1.6版,这个项目自行编译得很好。
我还创建了一个依赖于JavaLibrary的Android库项目(我称之为AndroidLibrary)。我期待JavaLibrary处理AndroidLibrary中使用的一些注释并生成一些代码。
然而,当我尝试编译AndroidLibrary时,我收到以下错误:
java.lang.NoClassDefFoundError: android/os/Bundle
堆栈跟踪显示了JavaLibrary中引用android.os.Bundle的行。
为什么会发生这种情况,如何让这两个项目一起编译?
答案 0 :(得分:0)
我对gradle部件不确定。我们构建的Android操作系统jar只是API存根,不应该导出,因为它们是"提供"通过设备。
要在Java项目中使用Android类,只要它们(及其依赖项)不引用本机或内部代码,您就可以将所需的Java源文件复制到Java项目中。
不确定为什么你需要一个捆绑包,但这里有一个链接到GrepCode的副本来源: