Android源代码构建:重复类

时间:2011-07-25 09:22:01

标签: android build

在构建Android源代码时,我收到此错误:

  

out / target / common / obj / APPS / SystemUI_intermediates / src / com / android / systemui / R.java:10:重复类:com.android.systemui.R

即使我执行rm命令删除该文件或执行make clean。为什么会这样,我该如何处理?

6 个答案:

答案 0 :(得分:9)

您可能在2个不同的目录中有2个R.java文件。您应该运行搜索以找到并删除两者,然后尝试重建。

答案 1 :(得分:3)

一个构建系统可以将生成的R.java源文件保留在一个目录中,而其他构建系统将其作为常规源文件并将生成的R.java放入另一个目录中。

例如,您可以使用AOSP构建过程,但在IntelliJ中打开源后会中断,因为IntelliJ已将额外的R.java放在gen/目录下。

摘要:正确清理输出目录并检查目录是否没有获得额外的R.java文件。在项目根目录中运行find . -name R.java以查看是否有gen dir中的任何reduntant R.java文件

答案 2 :(得分:2)

它没有帮助我删除重复的R.java和BuildConfig文件,因为它总是重新创建并显示上述错误。

有什么帮助我理解为什么文件在第一个地方重复。在我的情况下,这是因为我错误地在项目中的模块之间建立了循环依赖。这种方式当编译器开始为已经编译为依赖项的其中一个模块创建类时,它会显示错误。 删除不需要的依赖项并重新编译项目修复了问题。

P.S。
我没有立即发现依赖问题的原因是因为我目前正在使用的Android工作室(0.6.1)有一个错误,有时项目设置视图会出错并显示已经删除的模块或者没有显示模块的模块目前在依赖列表中。重新启动Android工作室可以解决问题,因此我建议在应用上述修复程序之前重新启动。

答案 3 :(得分:0)

检查清单文件中是否更改了包名称,或者尝试删除R.java文件,然后再次构建它。

答案 4 :(得分:0)

从QT部署Android应用程序时遇到了相同的错误。 我已经打开了
这样的构建目录 “ C:\ Myproject \ src \ builds \ build-helloworldandroid-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Release”
我删除了所有文件,然后重新编译。 错误消失并成功运行了该应用程序。

答案 5 :(得分:0)

如果您过去曾尝试删除项目文件和目录,那么您可能并没有删除导致重复类错误的类,尽管这是无意的。

Build> Clean Project为我解决了这个问题。