我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
我发现我的R.java从来没有更新过,所以它不包含关于新资源的信息,所以我决定删除它,并认为Eclipse会生成一个新的资源。但这并没有发生,我现在没有R.java。我怎么能再生一个?
我用的是Windows 7。
其中一条评论是:“做项目->清洁是我遇到问题的原因。删除R.java…不管出于什么原因,插件没有重新生成文件。”
当前回答
我发现在res文件夹中任何有大写字母的文件都会产生这个错误。这种情况发生在我添加的一个PNG文件上,我忘记了。
其他回答
r .类可能突然丢失的一个原因是XML文件中出现错误。例如,当您添加一个名称中带有大写字母的XML文件时,例如myCoolLayout.xml,这是不允许的。或者当您的引用不指向现有文件时,等等。
对于这个问题,显然没有一个最终答案,但这里有另一个我还没有看到的答案:
我曾经让R.java在(尝试)团队同步后消失,并且在项目中存在冲突解决文件(即thing .xml.mine,thing .xml)。r35,等等)。删除它们/解决冲突再生R。
我也有同样的问题,我最终发现了问题:在strings.xml中,我没有保留一行<string name="app_name">程序名</string>,这是在创建一个新的Android项目时默认存在的。我以为它只用于程序HelloWord,这是原来的程序。
然而,AndroidManifest.xml引用这个值,因此:
编译错误; =>没有更新R.java; => ID不被识别…
我发现这发生在我与一个破碎的布局和一切爆炸。放松,这就像你第一次学习编程时犯的错误一样,你忘记了一个分号,它就会产生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.
我发现在res文件夹中任何有大写字母的文件都会产生这个错误。这种情况发生在我添加的一个PNG文件上,我忘记了。