Cannot resolve R.java, duplicate class

守給你的承諾、 提交于 2019-12-23 19:04:14

问题


I just start using Android Studio for a week and it works great for me, but when I started Android Studio today I get the error: 'error: duplicate class: mypackage.R'. I saw this error before when I used Eclipse so I tried to rebuild the project a few times and restarting Android Studio, this didn't help.

After reading some Stackoverflow questions I tried to deleted R.java and rebuild again, now I don't get any error while rebuilding. The only problem is that Android Studio cannot resolve R, so every line which uses R gets an error (project builds and run).

I also tried to delete all the R.class files but this doesn't help either. I checked if some class imports android.R, but they all don't, they just import 'mypackage.R'. I even deleted all my files and checked out a older version of my project but I still have the same problem.

Edit:

If I don't delete R.java the compiler doesn't give any error. Just when I try to build I get a lot of errors like: 'error: cannot find symbol variable button_login'. If I search the R.java file for 'button_login' I just find it. I did this with multiple errors.

Edit2:

When I deleted all the libaries the project now builds. But the problem is that I need those libaries (HTTPComponents). I added them from maven (File --> Project Structure --> Libaries --> +-sign') and added them to my 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
    }
}

When I run gradlew.bat --stacktrace --info assemble I get errors that Gradle is unable to find the libaries from the maven repository. I checked the repository but they are available. http://search.maven.org/#browse%7C1628757896


回答1:


Unfortunately I run into this as well, sometimes frequently, mostly happens when I put my computer to sleep and back on while Eclipse is on. Sometimes recompiling and validating the project works.

I did find this solution online somewhere, lost the link and do not claim credits for this:

  • Disable auto build, and clean the project then
  • Right click your project -> properties -> Java Build Path -> Source -> Add Folder -> add gen and src
  • Then compile

If that doesn't work, try to delete the gen folder and do that process

Let me know.




回答2:


Delete the Build folder generated by Android Studio automatically!




回答3:


Problem is simple usually. You have fresh instal of studio? So you just fogot add SDK support for those version Android in wich try to compile project. Android Studio can`t generate R file. Start SDK manager, install all missing SDK version and rebuld project.

Another problem can be if you use 64bit OS. You ned to install 32 bit lib, because aapt can`t work with 64bit libs.

  • in Ubuntu install ia32-libs
  • Fedora described here
  • in other distr find libs in google (just google:ia32-libs for "mydistr"), i cant describe all of them ;)

P.S. sorry for my English ;)




回答4:


Delete all class file in your_package_name(androisTest) folder only keep ApplicationTest file.




回答5:


If you are using some library from which you are getting this error, just delete the build folder under your app source and rebuild the project. I was using OpenCV library for which I w as getting this error and that got resolved by deleting the build folder and rebuilding the project.




回答6:


  1. Delete all generated code inside "gen" folder.
  2. Uncheck Project->Build Automatically in eclipse.
  3. compile android source once again.
  4. Error will be removed, worked for me.



回答7:


This still happens sometimes in Android Studio, but a simple Build / Clean Project followed by a Build / Rebuild Project takes care of it.



来源:https://stackoverflow.com/questions/17104020/cannot-resolve-r-java-duplicate-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!