【问题标题】:Cannot resolve R.java, duplicate class无法解析 R.java,重复类
【发布时间】:2013-06-10 20:08:30
【问题描述】:

我刚开始使用 Android Studio 一周,它对我来说非常好用,但是当我今天启动 Android Studio 时,我收到错误:'error: duplicate class: mypackage.R'。我之前在使用 Eclipse 时看到了这个错误,所以我尝试重建项目几次并重新启动 Android Studio,这没有帮助。

在阅读了一些 Stackoverflow 问题后,我尝试删除 R.java 并再次重建,现在重建时没有任何错误。唯一的问题是 Android Studio 无法解析 R,因此使用 R 的每一行都会出错(项目构建和运行)。

我也尝试删除所有 R.class 文件,但这也无济于事。我检查了某些类是否导入了 android.R,但它们都没有,它们只是导入了“mypackage.R”。我什至删除了所有文件并检查了我的项目的旧版本,但我仍然遇到同样的问题。

编辑:

如果我不删除 R.java,编译器不会给出任何错误。就在我尝试构建时,我收到很多错误,例如:'错误:找不到符号变量 button_login'。如果我在 R.java 文件中搜索“button_login”,我就会找到它。我这样做有多个错误。

编辑2:

当我删除项目现在构建的所有库时。但问题是我需要那些库(HTTPComponents)。我从 maven(文件 --> 项目结构 --> 库 --> +-sign')添加它们并将它们添加到我的 settings.graddle 中:

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
    compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.2.5'
    compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.2.5'

    //compile 'org.apache.httpcomponents-httpclient:4.2.5' doesn't work either
    //compile 'org.apache.httpcomponents-httpmime:4.2.5' doesn't work either
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 16
    }
}

当我运行 gradlew.bat --stacktrace --info assemble 时,我收到 Gradle 无法从 maven 存储库中找到库的错误。我检查了存储库,但它们可用。 http://search.maven.org/#browse%7C1628757896

【问题讨论】:

  • 您的某个 xml 文件中是否存在错误,导致无法构建 .R?
  • 我没有对我的 xml 文件进行任何更改,它们没有任何错误。项目构建并运行,编译器就是找不到R
  • 检查是否有一个 R.java 文件?如果您有两个 R.java 文件,通常会发生这种情况
  • 我只有一个 R.java 文件,我试图删除该文件但也没有用
  • 只需检查您的res 文件夹并更正错误。

标签: android android-resources android-studio r.java-file


【解决方案1】:

直到今天我已经很久没有遇到这个问题了。

Error:(10, 14) java: duplicate class: com.domain.name.R

在项目上浪费了 2 小时的时间并收到此错误后,

最后我删除了 .ideagenout 文件夹以及 iml 文件。

然后我关闭了项目,然后再次使用主菜单的import project重新导入。

它现在运行良好。

【讨论】:

    【解决方案2】:

    这有时在 Android Studio 中仍然会发生,但是一个简单的构建/清理项目,然后是一个构建/重建项目会处理它。

    【讨论】:

      【解决方案3】:
      1. 删除“gen”文件夹中所有生成的代码。
      2. 取消选中项目->在 Eclipse 中自动构建。
      3. 再次编译android源码。
      4. 错误将被删除,为我工作。

      【讨论】:

        【解决方案4】:

        如果您使用的某个库会导致此错误,只需删除应用源下的 build 文件夹并重新构建项目即可。我正在使用 OpenCV 库,我遇到了这个错误,并且通过删除构建文件夹并重建项目得到了解决。

        【讨论】:

          【解决方案5】:

          删除your_package_name(androisTest)文件夹中的所有类文件,只保留ApplicationTest文件。

          【讨论】:

            【解决方案6】:

            问题通常很简单。你有新安装的工作室吗?因此,您只需在尝试编译项目时为那些版本的 Android 添加 SDK 支持。 Android Studio 无法生成 R 文件。启动 SDK 管理器,安装所有缺少的 SDK 版本并重新构建项目。

            如果您使用 64 位操作系统,则可能会出现另一个问题。您需要安装 32 位库,因为 aapt 无法使用 64 位库。

            • 在 Ubuntu 中安装 ia32-libs
            • Fedora described here
            • 在其他发行版中查找 google 中的库(仅 google:ia32-libs 用于“mydistr”),我无法描述所有这些 ;)

            附:对不起我的英语;)

            【讨论】:

              【解决方案7】:

              删除Android Studio自动生成的Build文件夹!

              【讨论】:

              • 不幸的是这不起作用,我仍然有同样的问题
              • 这个解决方案对我有用。我的设置与@ObAt 不同。 3 年后,我在 Linux 上,@ObAt 似乎在 Windows 上,而我的 settings.gradle 比所讨论的要简单得多。此解决方案比其他解决方案更容易尝试,因此希望投票和此评论可以帮助其他解决相同问题的人。
              【解决方案8】:

              不幸的是,我也遇到了这种情况,有时很频繁,主要发生在我让计算机进入睡眠状态并在 Eclipse 开启时重新打开。有时重新编译和验证项目是可行的。

              我确实在某处在线找到了此解决方案,但丢失了链接并且不为此声明:

              • 禁用自动构建,然后清理项目
              • 右击你的项目 -> 属性 -> Java Build Path -> Source -> Add Folder -> add gen and src
              • 然后编译

              如果这不起作用,请尝试删除 gen 文件夹并执行该过程

              告诉我。

              【讨论】:

              • Android Studio 没有“gen”文件夹,我添加了“src”文件夹,但这并没有改变任何东西。 Android Studio 仍然不会生成 R.java 文件,如果我手动恢复它,我会收到重复文件错误
              猜你喜欢
              • 1970-01-01
              • 2017-03-05
              • 2012-02-24
              • 1970-01-01
              • 2012-01-11
              • 1970-01-01
              • 2011-04-17
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多