Mau*_*bon 1056 eclipse android compiler-errors android-sdk-tools android-resources
我刚下载并安装了新的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);
}
}
Run Code Online (Sandbox Code Playgroud)
但Eclipse给了我错误
R无法解决
在线
setContentView(R.layout.main);
Run Code Online (Sandbox Code Playgroud)
为什么?
PS:我有一个名为XML文件main.xml下res/layout/.
Mic*_*evy 836
在追踪这个问题之后,我在Android文档中找到了这个注释:
http://source.android.com/source/using-eclipse.html
*注意:Eclipse有时喜欢在使用资源的文件顶部添加"import android.R"语句,尤其是当您要求Eclipse对其进行排序或管理时.这会导致你的品牌破产.留意这些错误的import语句并删除它们.*
在浏览Android示例教程时,我经常使用Ctrl+ Shift+ O命令来"组织导入"并生成任何缺少的导入语句.有时这会生成不正确的import语句,这会隐藏R.java构建时自动生成的类.
Luc*_*Luc 389
每次我遇到R的问题都没有生成,甚至消失,这是由于XML布局文件中的一些问题阻止了应用程序的构建.
Vas*_*asu 199
每当你得到
R无法解决
然后检查/res目录,必须有一些文件中有一些错误,这阻止了应用程序的构建.例如,它可能是布局文件,也可能是由于某些资源丢失,但您已经在XML文件中定义了它.
如果在res/drawables-mdpi等文件夹中有任何其他的,甚至未使用的(!)或未引用的(!)图像,这些文件不符合文件命名约定(可能只包含[a-z0-9_.]), R.java类可能不会生成,导致所有其他帖子引用的事件链.希望能帮助到你!
Dim*_*rov 133
我的项目开头包含一个r.java.at,R.layout.main工作正常.但是,添加一些代码后它不起作用,并且错误是R.layout.main无法解决.问题是什么?
看看你的进口.可能是这条线:
import android.R;
Run Code Online (Sandbox Code Playgroud)
将在那里.如果是这种情况,请删除它,以便您的项目将使用默认的Android Resources类解析R,但使用从/ res /文件夹自动生成的类.
小智 87
R.java是Android Eclipse插件在构建应用程序时创建的文件.R.java在"gen"目录下创建.该文件是根据"res"目录中的信息生成的.如果在Eclipse菜单上运行选择"Project" - >"Clean ...",它将删除然后重新生成该R.java文件.
当您在AndroidManifest.xml文件中更改包名称时,会出现"无法解析R"的问题.它使用您的Android软件包名称在"gen"目录下创建一个子目录,用于存储R.java文件.
Eclipse可能在执行clean时遇到问题,因为R.java当您更改Android软件包名称时,它对文件的位置感到困惑.您可以重命名下的子目录gen以匹配新的软件包名称,也可以将软件包名称更改回旧名称.执行clean操作,然后将程序包名称更改为所需的新名称.如果您在更改程序包名称时阻止Eclipse尝试构建,则此方法效果最佳.在"项目"菜单下,取消选中"自动构建"选项,并在"清除..."对话框询问是否应该"立即开始构建"时取消选中该框,以便在您更改时不会尝试构建包名称.更改名称后,您可以再次打开"自动构建".
请注意,如果您的AndroidManifest.xml文件包名称与您的Java包名称不匹配,Eclipse将最终自动添加"import <您的Android包名称> .R;" 所有.java文件中包含对R的任何引用的行.如果更改了AndroidManifest.xml
包名,有时Eclipse不会更新所有这些添加的导入.如果发生这种情况,请使用Eclipse重构(ALT+
Shift+ R)将您的一个Java文件中的import语句更改为新的AndroidManifest.xml包名.禁用"自动构建"时,最好执行此操作.
Mau*_*bon 85
说的是对的
R是一个自动生成的类,它包含用于标识>资源的常量.如果您没有R.java文件(它将是带有1.5 SDK的Eclipse中的gen/eu.mauriziopz.gps/R.java),我建议关闭并重新打开您的项目或转到> Project> Build all (并按照> Josef的推荐选择"自动构建").如果这不是尝试创建一个新项目,如果重新创建问题而不是>再次发布这里,我们将详细介绍.
但我发现还有另一个问题导致了第一个问题.SDK目录中的工具没有执行权限,因此它就像Eclipse不存在一样,因此它没有构建R.java文件.
因此,修改权限并选择"自动构建"解决了这个问题.
Wil*_*ill 39
R是一个自动生成的类,它包含用于标识资源的常量.如果您没有R.java文件(在Eclipse中使用1.5 SDK将是gen/eu.mauriziopz.gps/R.java),我建议您关闭并重新打开项目或转到Project> Build all(和按照Josef的推荐选择"自动构建".如果这不是尝试创建一个新项目,如果问题被重新创建,而不是再次发布,我们将详细介绍.
小智 27
关闭所有文件,清理项目,重启Eclipse.
gre*_*een 23
值得一试AndroidManifest.xml.该属性package具有正确的值.
那是:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
...
Run Code Online (Sandbox Code Playgroud)
更改后,R.java将重新生成.
Rob*_*Rob 19
将错误添加到与包的根命名空间不同的命名空间也可能导致此错误.
例如,如果com.example.myapp是包的根命名空间,则可以向命名空间添加活动com.example.myapp.activities.
这将产生"R无法解决"的错误.
要修复导入,活动中默认命名空间中的R应为:
import com.example.myapp.R;
Run Code Online (Sandbox Code Playgroud)
sat*_*ost 19
除了之前答案中的好建议外,请确保设置了Android目标:
编辑:一年后,我找到了另一个原因.我的drawable文件夹中有一个.jpg图像,其名称与.png图像相同.在我的代码中引用此图像必定使程序混淆,并且它给出了"R无法解析"错误.
Sun*_*mar 17
确保您安装了Android构建工具表单sdk manager
项目右键单击属性 - > Java BuildPath选择库并添加android-support.jar,按照这些步骤操作.
转到Project-> Properties-> Java Build Path,然后选择Order and export选项卡.设置android-support .jar库并将其添加到列表顶部.并清洁和重建..它适用于大多数情况

aki*_*kim 14
最简单的解决方案 - 有时您只需要保存正在处理的XML文件以启动自动生成器.
保存文件(例如main.xml),然后删除R.java文件,看看重新生成的R.java是否解决了R resolve问题.
kpa*_*pax 10
在我的x64 Linux Mint安装上出现此错误.事实证明,结果是ADB二进制文件失败,因为ia32-libs没有安装包.只需运行apt-get install ia32-libs并重新启动Eclipse即可修复错误.
如果您的x64发行版没有ia32-libs,则必须使用Multiarch.
在这篇文章中查看#4和#5:http://crunchbang.org/forums/viewtopic.php?pid = 277883# p277883
希望这有助于某人.
Naz*_*san 10
您可能需要更新/安装SDK工具.重新启动Android SDK Manager并安装一个新项目:Android SDK Build-tools.one一次删除,修复哪一项适合您.
我也有这个问题.事实证明,我无意中从strings.xml文件中删除了"app_name"字符串资源,这导致了一个无声错误.一旦我将其添加回来,R类就会成功生成,所有内容都会重新启动并运行.
小智 6
R.java如果您有res/drawable-hdpi,res/drawable-mdpi或res/drawable-ldpi等目录,则可能无法自动生成的另一个原因.
这些目录似乎没有1.6+,但1.5不需要它们.当我删除这些目录时,R.java再次开始为我自动生成.
小智 5
如果有人感兴趣(我可能会在这里救你一命),我有错误,R.xml无法解决,在 GLS 项目上略有不同。嗯嗯。在查看之后R.java,我发现了一个自动生成的类XML.java,(我认为)不在那里。
解决方案?它需要一个新文件夹res:res\xml和一个default_values.xml
在那里调用的文件。然后一切正常。
以防万一你没有那个文件,它是:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
小智 5
通常,这是由于创建项目时提供的MinSDK版本号。例:
如果您希望2.1最低,那么Android 2.1实际上是API级别7。
浏览下载并安装的SDK时,您可以看到我在说什么。导航到您安装SDK的位置(C:\android-sdk-windows例如),然后打开名为“ platforms”的文件夹。您会看到类似“ android-7”的内容作为文件夹列出,并且如果打开该source.properties文件,则在使用文本编辑器打开该文件时会向您显示相应的平台版本。
创建项目时,必须选择“构建目标” API,该列表中名为“ API级别”的最后一列显示在填充MinSDK设置时要查找的编号。
这可能是最常见的错误之一,导致R.java无法在“项目”>“ gen”>“程序包名称”>“ R.java”下创建文件。
| 归档时间: |
|
| 查看次数: |
894075 次 |
| 最近记录: |