AOSP PackageManagerService引用Roboelectric,因此无法编译

时间:2015-08-06 17:03:54

标签: android intellij-idea android-source

我构建了AOSP 5.1.0_r3并导入IntelliJ。并遵循these steps.

但是当我打开例如PackageManagerService.java代码时,它无法编译它的引用外部/ robolectric / lib / main / android.jar / android / os / Process。例如,缺少SHELL_UID:

private static final int SHELL_UID = Process.SHELL_UID;

如果我查看标准的android.jar SHELL_UID it's there。 还有更多像这样的案例。这可能有什么问题?

屏蔽1: enter image description here

屏蔽2: enter image description here

- - - - >更新2个固定问题:

添加了排除路径,还发现我必须删除项目结构中的依赖项:

enter image description here

在PackageManagerService.java中,它仍然无法解析符号:

enter image description here

- - - - >更新2开放问题:

在这个Manifest(和其他人)中,它无法解析几个符号(与Android相关): enter image description here

1 个答案:

答案 0 :(得分:2)

这不是我所知道的常见问题,所以我不完全确定为什么你会特别看到这个错误。无论如何,为避免IDE混淆,您可以将external/roboelectric添加到自定义excluded-paths文件中,以便Idegen在生成的IDE类路径中忽略它。

如果您还没有其中一个文件,则它会进入AOSP树的顶级目录,并包含要在生成期间排除的目录。您可以看到built-in exclude file for example syntax

Idegen应该排除所有JAR文件,但它只能对out/prebuilts/中的文件执行此操作。