【问题标题】:Android source build: duplicate classAndroid源代码构建:重复类
【发布时间】: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 build


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      总结:正确清理您的输出目录并检查您的 source 目录是否没有额外的 R.java 文件。在项目根目录中运行 find . -name R.java 以查看是否有类似 gen 目录中的冗余 R.java 文件

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 你说得对。您可以删除构建文件,直到您的脸变蓝,但每次都会重新生成/重新构建,从而导致重复的 R.java 冲突。
        【解决方案4】:

        检查您是否在清单文件中更改了包名称或尝试删除 R.java 文件然后重新构建它。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-01-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多