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

我用的是Windows 7。

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


当前回答

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

其他回答

我遇到过几次这样的问题。我发现,如果我没有通过应用程序的名称导入包R,例如,如果我的应用程序有包名称示例。然后我发现我必须导入example.test.R才能访问任何资源。

如果没有导入,那么返回的资源是默认资源,不包括我自己的资源。

也就是说,如果你发现你只是得到一个默认资源的列表,然后检查,以确保你导入application_package_name。R而不是android。

我也遇到了这个问题,不幸的是,这里的建议对我没有任何帮助。在尝试了很多事情之后,我终于发现了发生了什么,希望它能帮助到其他人。

昨天我用Android SDK管理器下载了很多新东西。之后,我更新了Android Eclipse插件。今天,在Eclipse“清理”之后,R文件消失并停止生成。

原因是,不知为何,可用sdk的列表(在首选项-> android下)是空的。在再次将其指向正确的目录后,它将重新加载并显示可用的sdk。当我关闭首选项并尝试另一个构建时,一切都恢复正常。

在附件的图片中,你可以看到已经填满的sdk列表。当问题发生时,它是空的。

希望这能对别人有所帮助!

快速修复:

清单中的包名称需要与/src文件夹中的包名称相同,/gen文件夹中的包将自动复制。

详细的观察:

观察/gen文件夹中的包的名称。在我的例子中,它与/src文件夹中的不同。

清单中引用的包是/gen文件夹的包。

我尝试添加一个名为/src文件夹的包到/gen文件夹,看看会发生什么,但这并没有解决问题。然后,我删除了与/src文件夹的包名不相同的包名。这个名称与/src文件夹不对应的包在我删除它后立即被重新创建。

由于清单中的包引用对应于正在被无意义地重新创建的包,并且与/src文件夹中的包不对应,这提示将package = "oldPackage"重命名为package = "srcFolderPackage"。

我改变了我的布局XML文件名,后来发现XML文件(小部件提供程序在这种情况下)仍然引用旧的布局XML不存在,这阻止了R类的自动生成/纠正。

我发现这发生在我与一个破碎的布局和一切爆炸。放松,这就像你第一次学习编程时犯的错误一样,你忘记了一个分号,它就会产生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.