【发布时间】:2011-10-12 10:38:20
【问题描述】:
在构建 Android 源代码时出现此错误:
out/target/common/obj/APPS/SystemUI_intermediates/src/com/android/systemui/R.java:10:重复类:com.android.systemui.R
即使我执行rm 命令删除该文件或执行make clean。为什么会这样,我该如何处理?
【问题讨论】:
在构建 Android 源代码时出现此错误:
out/target/common/obj/APPS/SystemUI_intermediates/src/com/android/systemui/R.java:10:重复类:com.android.systemui.R
即使我执行rm 命令删除该文件或执行make clean。为什么会这样,我该如何处理?
【问题讨论】:
您可能在 2 个不同的目录中有 2 个 R.java 文件。您应该运行搜索以找到并删除它们两个,然后尝试重建。
【讨论】:
一个构建系统可以将生成的R.java源文件留在一个目录中,而另一个构建系统会将其作为常规源文件并将生成的R.java放到另一个目录中。
例如,您可以使用 AOSP 构建过程,但在 IntelliJ 中打开源代码后它会中断,因为 IntelliJ 已将额外的 R.java 放在 gen/ 目录下。
总结:正确清理您的输出目录并检查您的 source 目录是否没有额外的 R.java 文件。在项目根目录中运行 find . -name R.java 以查看是否有类似 gen 目录中的冗余 R.java 文件
【讨论】:
它没有帮助我删除重复的 R.java 和 BuildConfig 文件,因为它总是重新创建它并显示上述错误。
帮助我理解为什么文件在第一个地方重复。就我而言,这是因为我错误地在项目中的模块之间建立了循环依赖关系。这样,当编译器开始为其已编译为依赖项的模块之一创建类时,它会显示错误。 删除不需要的依赖并重新编译项目解决了问题。
附言
我没有立即发现依赖问题的原因是因为我当前使用的 Android Studio (0.6.1) 有一个错误,有时项目设置视图会出现错误并显示已删除的模块或不显示已删除的模块目前在依赖列表中。重新启动 Android Studio 可以解决问题,因此我建议在应用上述修复之前重新启动。
【讨论】:
检查您是否在清单文件中更改了包名称或尝试删除 R.java 文件然后重新构建它。
【讨论】:
我在从 QT 部署 Android 应用程序时遇到了同样的错误。
我已经打开了像
这样的构建目录
“C:\Myproject\src\builds\build-helloworldandroid-Android_for_armeabi_v7a_Clang_Qt_5_12_3_for_Android_ARMv7-Release”
我删除了所有文件并再次编译。
错误消失并成功运行应用程序。
【讨论】:
如果您过去曾尝试删除项目文件和目录,您可能没有删除导致重复类错误的类,尽管是无意的。
Build > Clean Project 为我解决了这个问题。
【讨论】: