无法解析R-Android错误
我刚刚下载并安装了新的Android SDK。我想创建一个简单的应用程序来测试它 向导创建了以下代码:无法解析R-Android错误,android,eclipse,compiler-errors,android-resources,android-sdk-tools,Android,Eclipse,Compiler Errors,Android Resources,Android Sdk Tools,我刚刚下载并安装了新的Android SDK。我想创建一个简单的应用程序来测试它 向导创建了以下代码: package eu.mauriziopz.gps; import android.app.Activity; import android.os.Bundle; public class ggps extends Activity { /** Called when the activity is first created. */ @Override publi
package eu.mauriziopz.gps;
import android.app.Activity;
import android.os.Bundle;
public class ggps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
但是给了我一个错误
R无法解决
在线
setContentView(R.layout.main);
为什么?
PS:我确实在
res/layout/
下有一个名为main.XML的XML文件,它是一个生成的类。如果您使用的是,则无论何时生成项目,都会生成它。您可能已关闭“自动生成”。R是一个自动生成的类,其中包含用于标识资源的常量。如果您没有R.java文件(在带有1.5SDK的Eclipse中是gen/eu.mauriziopz.gps/R.java),我建议关闭并重新打开您的项目,或者转到project>Build all(并按照约瑟夫的建议在那里选择“Build Automatically”)。如果这不起作用,那就试着做一个新的项目,如果问题再次出现,就在这里再次发布,我们将更详细地讨论。威尔说的是对的
R是一个自动生成的类,它保存用于标识>资源的常量。如果您没有R.java文件(它将是gen/eu.mauriziopz.gps/R.java in>Eclipse with 1.5sdk),我建议关闭并重新打开您的项目,或者转到>项目>全部构建(并根据>约瑟夫的建议选择“自动构建”)。如果这不起作用,那就试着做一个新的项目,如果问题被重新创建,那么就在这里再次发布,我们将更详细地讨论
但我发现还有另一个问题导致了第一个问题。SDK目录中的工具没有要执行的权限,因此就好像Eclipse不存在一样,因此它没有构建R.java
文件
因此,修改权限并选择“自动生成”解决了问题
我的项目包含了一个r.java.r.layout.main。在开始时,r.layout.main工作得很好。但是,添加一些代码后,它不工作,错误是r.layout.main无法解决。问题是什么
看看你的进口货。可能的情况是:
import android.R;
我会在那儿的。如果是这种情况,请删除它,这样您的项目将不会使用默认的Android资源类,而是使用从/res/文件夹自动生成的类来解析R。我也遇到了这个问题。原来我无意中从strings.xml
文件中删除了“app_name”字符串资源,这导致了一个无声错误。一旦我把它添加回来,R类就成功生成了,所有的东西都备份并运行了。如果有人感兴趣(我可能在这里救了你的命),我有一个错误,R.xml
无法解决,在GLS项目上略有不同。嗯。在查看R.java
之后,我发现一个自动生成的类,XML.java
,(我想)不在那里
解决方案?它需要在res
中新建一个文件夹:res\xml
和一个名为default\u values.xml
在那里。然后一切都好了
以防您没有该文件,它是:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
每当我遇到R未生成甚至消失的问题时,这都是由于XML布局文件中的某些问题导致无法构建应用程序。R.java
是Android Eclipse插件在运行时创建的文件
构建应用程序R.java
是在“gen”下创建的
目录此文件是根据“res”中的信息生成的
目录如果在Eclipse上运行,请选择“Project”->“Clean…”
菜单,它将删除并重新生成R.java
文件
“R无法解决”问题发生在您更改
AndroidManifest.xml
文件中的包名称。它使用你的安卓系统
用于在“gen”目录下创建子目录的包名称,其中
它存储R.java
文件
Eclipse在执行clean时可能会遇到问题,因为它对
其中R.java
文件是在您更改Android软件包时出现的
名称您可以重命名gen
下的子目录以匹配您的
新建程序包名称,或者您可以将程序包名称更改回旧名称
名称进行清理,然后将包名称更改为新名称
你想要的。如果您阻止Eclipse尝试构建,这将是最有效的
当您更改包名时。在“项目”菜单下
取消选中“自动生成”选项,并且在
“清理…”对话框询问是否应“立即启动生成”
取消选中该框,以便在您更改
包名。更改名称后,可以打开“Build”
自动“重新打开”
请注意,如果您的AndroidManifest.xml
文件包名称不匹配
您的Java包名Eclipse将自动添加
在所有.java
文件中输入“import.R;”行
如果您更改AndroidManifest.xml
包名称,有时Eclipse不会更新所有添加的
进口。如果发生这种情况,请使用Eclipse重构(ALT+
Shift+R)将其中一个Java文件中的import语句更改为
新的AndroidManifest.xml
包名。最好这样做
禁用“自动生成”后,请检查XML文件名。确保它们都是小写的
还要确保所有图像资源名称也都是小写的。我的jpg文件名中有一个大写字母,它在整个项目中导致了R未解决的错误。另一个原因是R.java
可能无法自动生成,如果您有res/drawable hdpi、res/drawable mdpi或res/drawable ldpi等目录
1.6+似乎可以使用这些目录,但1.5不需要它们。当我删除这些目录时,R.java<
import com.example.myapp.R;
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
...