R 无法解析 - Android 错误
-
23-08-2019 - |
题
我刚刚下载并安装了新的 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
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
但 蚀 给我错误
R无法解析
在线的
setContentView(R.layout.main);
为什么?
附:我有一个名为 main.xml
在下面 res/layout/
.
解决方案 7
什么都会说的是对
R是保存用于识别您>资源的常量的自动生成的类。如果你没有一个R.java文件(这将是根/ eu.mauriziopz.gps / R.java在>的Eclipse与1.5 SDK),我会建议关闭并重新打开项目或去>项目>生成所有(和选择“自动构建”,而有所推荐的>约瑟夫)。如果不超过工作尝试进行新的项目,如果问题比>重建后再次在这里,我们将进入更详细。
但我发现,这样做是这是造成第一个另一个问题。在SDK目录工具没有被执行的权限,所以它是象不存在的Eclipse,因此没有建立R.java
文件。
因此修改的权限和选择“自动构建”解决了这个问题。
其他提示
跟踪这个问题以及之后,我发现这个音符的Android文档中:
http://source.android.com/source/using-eclipse.html
*注:Eclipse中有时喜欢在添加“导入android.R”声明 您的文件使用资源之上, 尤其是当你问到的Eclipse 排序或管理进口。这个 会导致您的做的突破。看 出来这些错误的进口 语句并将其删除。*
虽然通过Android样品教程去,我会经常使用控制 + 移 + 0 到 “组织导入”,并生成命令任何缺少的import语句。有时候,这会产生这将隐藏在生成自动生成的R.java
类不正确的import语句。
每个时间我有没有产生有R有问题,或甚至消失,这是由于在从正在建造防止应用程序的XML布局文件一些问题。
每当你获得
R 1不能被解析
然后检查的/res
目录,必须有一些文件中有一些错误,并是防止正在构建的应用程序。例如,它可能是一个布局文件或一些丢失的资源是它可能是由于,但你已经在XML文件中定义它。
如果有任何其他,甚至未使用(!)或未引用(!)等RES /可绘-MDPI不符合的文件命名约定的文件夹中的图像(可以仅含有[A-Z0-9_。] )时,R.java类,可能无法产生,导致事件的所有其他职位提到的链。希望它可以帮助!
我的项目有包括r.java.at开始,R.layout.main工作好。不过,加入一些代码,它不工作后,错误是R.layout.main不能得到解决。有什么问题?
看看你的进口。机会是,行:
import android.R;
将在那里。如果是这样的情况下,删除它,让你的项目将解决R值不要用默认的Android资源类,但与一个自动生成的从你的/ RES /文件夹。
和这可能会导致此问题的另一件事:
我安装了新的ADT(V 22)。它停止创建gen
文件夹,其中包括R.java
。解决的办法是同时安装新的Android SDK在Android SDK管理器中生成工具。
解决方案发现此处
R.java
是在Android Eclipse插件创建而文件
构建应用程序。 R.java
是在“创”创建
目录。此文件是从信息产生的“水库”
目录。在Eclipse>“清洁......” - 如果您运行选择“项目”
菜单,这将删除并重新生成R.java
文件。
问题“R解决不了”当你改变你的情况
在AndroidManifest.xml
文件包名称。它使用自己的Android
包名称为“根”目录,下创建子目录
它存储R.java
文件。
的Eclipse可以具有执行清洁的问题,因为它是混淆
其中R.java
文件是当你已经改变了Android包
名称。您可以在子目录下重命名以gen
匹配您的
新包的名字,或者你可以改变你的包名回到老
名称。做好清洁,然后更改包的名称以新名称
你要。如果你从试图建立停止Eclipse的这个工作最好
而要更改包的名称。在“项目”菜单
取消选中“自动生成”,也当选项
“清洁...”对话框询问是否应该“立即开始构建”
取消选中该复选框因此它不会试图建立,而你正在改变
包裹名字。之后你已经改变了你可以把名称“建设
自动地”重新打开。
请注意,如果你的AndroidManifest.xml
文件包名称不匹配
您的Java包名,Eclipse会自动结束添加
“进口<你的Android包名称> .R;”在所有.java
文件行
这不得不R.任何引用如果您改变AndroidManifest.xml
包名,有时候Eclipse不更新所有这些增加的
进口。如果发生这种情况,使用Eclipse重构( ALT +
<大骨节病>移骨节病> + <大骨节病> [R 骨节病>)在Java文件中的一个来改变import语句
新AndroidManifest.xml
包名。最好是做到这一点
虽然已经禁用“自动构建”。
R是保存用于标识资源的常量的自动生成的类。如果你没有一个R.java文件(这将是根/ eu.mauriziopz.gps / R.java在Eclipse与1.5 SDK),我会建议关闭并重新打开项目或将项目>生成所有(与选择“自动构建”虽然有建议由约瑟夫)。如果不超过工作尝试进行新的项目,如果问题是重建不是再次张贴在这里,我们将进入更详细。
关闭所有文件,清洁工程,重新启动Eclipse。
值得一在AndroidManifest.xml
检查。属性package
具有正确的值。
即:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
...
用户改变后,R.java
将被重新生成。
此误差也可以通过添加一个活动的命名空间是根名称空间你的包不同而引起的。
例如,如果com.example.myapp
是你的包根名称空间,然后可以活动添加到com.example.myapp.activities
命名空间。
这将产生“R不能解析”错误。
要修复的进口中的R中的活动的默认命名空间应该是:
import com.example.myapp.R;
除了之前答案中的建议外,请确保您的 Android 目标已设置:
- 右键单击您的项目
- 选择属性
- 在左侧菜单中选择Android
- 勾选相应项目构建目标旁边的框。
- 单击应用并确定
编辑:一年后我找到了另一个原因。我的可绘制文件夹中有一个 .jpg 图像,其名称与 .png 图像相同。在我的代码中引用此图像一定会混淆程序,并给出“R 无法解析”错误。
请确保你安装了Android编译工具形式SDK管理器
项目右键属性 - > Java的构建路径选择库,并添加Android的support.jar的请按照下列步骤。
转到项目 - >属性 - >比选择订单和出口标签Java构建路径。设置Android的支持的.jar库检查,它向上到列表的顶部。和清洁rebuild..It适用于大多数的情况下
我只是有这个问题了百万次,并意识到发生了什么导致它:我创建了一个XML文件名称中带有大写字母。在/res
您所有的XML文件名必须匹配[a-z0-9\\._]
。
简单的解决方案 - 有时你只需要保存您正在处理,以获得自动发生器在踢XML文件
保存文件(例如main.xml中)然后删除R.java文件,看看是否再生R.java解析将R解决问题。
R
是生成的类。如果您正在使用href="http://developer.android.com/guide/developing/eclipse-adt.html" rel="noreferrer">的Android开发工具(ADT)的的是无论何时产生项目建成。你可能有“自动构建”关闭。
检查XML文件名。可以肯定的是他们都在小写。
此外,确保任何图像资源的名称也都在小写。我在我的JPG文件名的大写字母,它对面我的项目造成将R未解决的错误。
此错误突然出现在我的64位Linux Mint的安装。原来,该结果是在ADB
二进制失败的,因为没有安装ia32-libs
包。简单地运行apt-get install ia32-libs
和重新发起的Eclipse固定的误差。
如果您的x64发行版没有IA32-库,你必须去Multiarch。
检查#4和#5上此信息: http://crunchbang.org/forums/viewtopic.php?pid=277883#p277883
希望这可以帮助别人。
您可能需要更新SDK工具。再次重新启动Android SDK中管理和安装一个新的项目:Android SDK中构建的工具。
我有这个问题为好。原来,我已经无意中删除从strings.xml
文件,这是导致无声的错误“APP_NAME”字符串资源。一旦加入我回来,已成功生成R类,一切都恢复正常运行。
试着让你的新的XML布局文件名小写。例如,使用my_file.xml
代替myFile.xml
。
另一个原因R.java
可能无法获得自动生成的是,如果你有一个像 RES /提拉 - 华电国际, RES /绘制-MDPI 或 RES /绘制资源目录-ldpi 即可。
1.6+似乎与这些目录确定,但1.5不希望他们。当我删除这些目录,R.java
又开始autogenerating我。
我的Android 8的实施例,并试图使用Android 7 SDK。当我关闭该项目,并重新打开应用程序文件夹,并选择使用Android 8 SDK,它能够找到R档。希望这有助于。
在我的情况下,我在AndroidManifest.xml
有错误。也有人说,你的XML文件必须是没有错误的,但我只是看在res /文件夹。查找并解决许多可能出现的错误和问题也可以解决本身。
很多时候,这是因为创建项目时,您所提供的MinSDK版本号。例如:
如果你想2.1是最低的,Android 2.1的其实是API 7级。
您可以看到我在说什么,当你浏览你下载并安装了SDK有关。导航到你安装SDK来(C:\android-sdk-windows
为例)的地方,打开名为“平台”的文件夹。你会看到类似的“Android-7”列为一个文件夹,如果您打开有一个source.properties
文件,当用文本编辑器打开时,会显示相应的平台版本。
当您创建一个项目,你必须选择一个“构建目标” API,在一个名为“API级别”是列表中的最后一栏显示你正在寻找填充MinSDK设置时数。
这可能是导致没有根据项目>根>包名> R.java。
创建的文件R.java
最常见的错误之一 移除main.out.xml
。我是新来的这一点,还不知道这是什么文件用于,但删除它清除了问题。
不幸的是没有一个存在的问题有帮助。由于我的问题似乎特定于平台的,如果你是在 Ubuntu的64位(我目前使用Ubuntu 12),这可能只是工作。 起初,我并没有看到“问题”窗口,这已经暗示一个解决方案,即在64位环境所需的32个库,它可能会丢失:
<强>须藤易于得到安装IA32-库强>
我安装的包,重建我的项目,该项目解决了该问题对我来说。