我正在开发一个项目,修改来自蓝牙 Android 应用程序 Blueterm 的代码。在构建项目时,我收到多个错误,说“R 无法解析为变量”。我尝试清理项目,以及删除 R.java 文件,但没有成功。我还确保 AndroidManifest.xml 文件中的包名称是正确的。
我现在被困住了,真的很想对此有任何意见。
我正在开发一个项目,修改来自蓝牙 Android 应用程序 Blueterm 的代码。在构建项目时,我收到多个错误,说“R 无法解析为变量”。我尝试清理项目,以及删除 R.java 文件,但没有成功。我还确保 AndroidManifest.xml 文件中的包名称是正确的。
我现在被困住了,真的很想对此有任何意见。
我刚刚使用了一个新项目(R.Java)的复制和粘贴,它修复了所有问题。缺少 R Java。
查看有问题的文件并查看 R 在哪个包中。如果您将代码导入到您的项目中,它可能指向旧包中的 R。
例如,我最近复制com.android.HttpAuthenticationDialog
到一个项目中。它引用R
期望它com.android
是应用程序的包。由于该项目实际上com.example
是com.android.R
不存在的。
我需要将类移动到com.example
包中或添加import com.example.R;
到 Java 文件中。
如果您更新 AndroidManifest.xml 以使用不同的包,也会发生这种情况。例如,如果您从 更改com.bluetooth
为com.mybluetooth
,则 R 类将移至com.mybluetooth.R
. 任何期望com.bluetooth.R
存在的类都会有这个错误。
因此,即使我多次修复了 R.java。我一直有各种各样的问题。我一个接一个修好了。
但我发现了一些奇怪的东西;
在我的 SRC 文件夹(对于我的项目)中,R.java 文件夹被锁定(这是在 windows 中而不是在 eclipse 中)。它上面有一个锁形图标。我右键单击并获得了它的所有权。在清理、保存和等待之后,最终 Eclipse 修复了它,现在错误消失了。
如果您需要知道如何获取文件的所有权,只需在 google 上搜索即可。
如果您知道我的一个文件是如何像这样被锁定的,那就太好了!谢谢!
这是由您的 android sdk 管理器上的更新引起的。打开sdk manager,更新以下3个工具:
“android sdk 工具”、“android sdk 平台工具”、“android sdk 构建工具”
重启eclipse,按“Ctrl+Shift+O”
就是这样,您的项目应该构建资源
有几个原因。