0

我在一个使用 android.os.Bundle 的项目(我称之为 JavaLibrary)中创建了一个 java 注释处理器。因此,该项目在其 gradle.build 依赖项中有以下行:

compile 'com.google.android:android:4.1.1.4'

在 gradle.build 中,sourceCompatibilitytargetCompatibility设置为 1.6 版,这个项目可以自己编译。

我还创建了一个依赖于 JavaLibrary 的 Android 库项目(我将其称为 AndroidLibrary)。我期待 JavaLibrary 处理 AndroidLibrary 中使用的一些注释并生成一些代码。

但是,当我尝试编译 AndroidLibrary 时,出现以下错误:

java.lang.NoClassDefFoundError: android/os/Bundle

堆栈跟踪显示了在 JavaLibrary 中引用 android.os.Bundle 的行。

为什么会发生这种情况,我如何让这两个项目一起编译?

4

1 回答 1

0

我不确定gradle部分。我们构建的 Android OS jar 只是 API 存根,不应导出,因为它们是由设备“提供”的。

要在 Java 项目中使用 Android 类,您可以将所需的 Java 源文件复制到您的 Java 项目中,只要它们(及其依赖项)不引用本机或内部代码。

不知道为什么你需要一个捆绑包,但这里有一个链接到 GrepCode 的源代码副本:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2.1_r1/android/os/Bundle.java

于 2013-10-13T00:53:27.510 回答