我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?

我用的是Windows 7。

其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”


当前回答

很明显,这个问题有很多原因。如果你在64位的linux机器上,你第一次设置ADT,你可能会遇到这个问题,R不能自动生成。检查控制台选项卡,你可能会看到类似的错误:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

如果是这种情况,你需要安装ia32-libs,使用如下代码:

 sudo apt-get install ia32-libs

详见:Android adb未找到

其他回答

我的AndroidManifest.xml文件有一个问题,没有生成R.java。

我认为解决方案是检查所有的XML文件,到处都是!

我发现这发生在我与一个破碎的布局和一切爆炸。放松,这就像你第一次学习编程时犯的错误一样,你忘记了一个分号,它就会产生100个错误。许多人惊慌失措,按下所有的按钮,使事情变得更糟。

解决方案

Make sure that anything the R. links to is not broken. Fix all errors in your XML files. If anything in the ADKs are broken, R will not regenerate. If you somehow hit something and created import android.R in your activity, remove it. Run Project -> Clean. This will delete and regenerate R and BuildConfig. Make sure Project -> Build Automatically is ticked. If not, build it manually via Menu -> Project -> Build Project . Wait a few seconds for the errors to disappear. If it doesn't work, delete everything inside the /gen/ folder If it still doesn't work, try right-clicking your project -> Android Tools -> Fix Project Properties. Check your *.properties files (in the root folder of your app folder) and make sure that the links in there are not broken. Right-click your project > properties > Android. Look at the Project Build Target and Library sections on the right side of the page. Your Build Target should match the target in your AndroidManifest.xml. So if it's set to target 17 in AndroidManifest, make sure that the Target Name is Android 4.2. If your Library has an X under the reference, remove and re-add the library until there's a green tick. This might happen if you've moved a few files and folders around.

如果R不能再生怎么办

这通常发生在XML文件损坏时。

Check errors inside your XML files, mainly within the /res/ folder Common places are /layout/ and /values/, especially if you've changed one of them recently Check AndroidManifest.xml. I find that often I change a string and forget to change the string name from AndroidManifest.xml. Check that Android SDK Build-tools is installed. Window -> Android SDK Manager -> Tools -> Android SDK Build-tools Make sure when you update the Android SDK Tools, you also update the Android SDK Platform-tools and Android ADK Build-tools. Build fails silently if they don't match. If you can't find the issue, right click /gen/ -> Restore from local history... -> tick R.java -> click Restore. Even if it doesn't solve the problem, it will clear out the extra errors to make the problem easier to find.

如果你使用Lint错误检查器,它将识别虚假的“R”导入。 一旦XML系统抓住了错误的一端,一切都完了!!

很明显,这个问题有很多原因。如果你在64位的linux机器上,你第一次设置ADT,你可能会遇到这个问题,R不能自动生成。检查控制台选项卡,你可能会看到类似的错误:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/android-sdks/platform-tools/adb'

如果是这种情况,你需要安装ia32-libs,使用如下代码:

 sudo apt-get install ia32-libs

详见:Android adb未找到

在我的情况下,我检查了所有以前的解决方案,但没有生成r。我只是从菜单文件夹中删除了我的main.xml文件,并重新生成它。我不知道为什么,但它现在对我有用……