http://developer.android.com/training/basics/firstapp/building-ui.html
我一直在关注本教程,但我有两个错误,“R无法解析为变量”。我以前制作了android应用程序(简单的应用程序),我记得这个问题是通过检查我是否有导入R语句(我没有)以及项目是否在构建之前已经清理来修复的再次(我清理它,我仍然得到错误)。我不知道该怎么做。谢谢!
*我还想提一下我确实看到170个匹配的相同标题的线程,并且“删除导入R语句”的解决方案不适用于我的问题(我不认为) 再次感谢
所有代码都是直接来自上面的链接,但这里是为了方便
activity_my_first.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<EditText android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />
</LinearLayout>
MyFirstActivity.java
package com.example.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class MyFirstActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_first);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_my_first, menu);
return true;
}
}
的strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My First App</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">Send</string>
<string name="menu_settings">Menu Settings</string>
</resources>
编辑:当我清理项目时,我在控制台中收到此消息:
[2012-06-29 11:12:38 - MyFirstApp] W / ResourceType(6140):错误的XML 块:标头大小91或总大小0大于数据大小0 [2012-06-29 11:12:38 - MyFirstApp] C:\ Users \用户忠\工作空间\蚀\ MyFirstApp \ RES \菜单\ activity_my_first.xml:2: 错误:错误:找不到与给定名称匹配的资源(at 'title'的值为'@ string / menu_settings')。
编辑:在布局xml文件<string name="menu_settings">Menu Settings</string>
中添加了一行
修复了清理项目错误,但我仍然无法从两个R错误中运行项目。
答案 0 :(得分:7)
我正在通过相同的例子,并且有相同(或非常相似)的问题。
最后我注意到manifest.xml上有一个小小的红色x。 果然,它抱怨这个:
android:label="@string/title_activity_hello_world" >
所以我补充道:
<string name="title_activity_hello_world">Hello World</string>
到strings.xml,现在可以了。
答案 1 :(得分:3)
在学习本教程时遇到了同样的问题。 清洁项目或清理进口并没有解决问题。
问题是如何(简单地)解决的:我退出Eclipse并重新启动它。
答案 2 :(得分:1)
2件可能的事情
Android Manifest中指定的包名称与Java文件中的包名称不同。
或者,您的IDE尚未在gen /文件夹中生成R.java文件。尝试再次构建(尽管有错误)并且通常会将其清除。
基本上,R.java文件是为您和同一个包生成的,因此您可以简单地将其称为R。
答案 3 :(得分:1)
我有android:text="@string/button_send"
这给出了错误:No resource found that matches the given name (at 'text' with value '@string/button_send').
我尝试使用tuturial解决错误。但教程没有告诉我逐一编写所有必需的行。所以我想念在strings.xml中写"<string name="button_send">Send</string>"
。
添加上一行后,错误消失!我认为这与此主题中的原始问题类似。
因此,如果我从给定的教程中复制了整行,那么可能没有发生,但通过输入我们自己,我认为这是最好的学习方式。
答案 4 :(得分:1)
我找到了解决方案:
转到project->res->menu
而不是打开XML
文件并删除此行:
android:title="@string/menu_settings"
我删除了它并且在问题部分中发出相同警告3小时后它开始工作。
当你阅读它时,“title
的价值为@string/menu_settings
”
答案 5 :(得分:0)
请确认
中没有错误1-项目文件夹 2-问题日食观 3-控制台 4-错误日志,如图像中所示
答案 6 :(得分:0)
你必须确保
import android.R;
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="your.correct.package.name"
答案 7 :(得分:0)
这为我解决了这个问题: https://stackoverflow.com/a/3259974/1538785
似乎eclipse喜欢无缘无故地为java文件添加导入行。转到你的java文件,点击ctrl + shift + o,将出现所有import语句。删除说明import andriod.R
的行答案 8 :(得分:0)
右键单击Project,选择“Android Tools”&gt; “添加支持库”&gt; “Android支持库,修订版11”&gt; “安装”
答案 9 :(得分:0)
在我的情况下,问题是我在64位Linux上,并且没有安装所需的32位库,这意味着构建工具无法生成R.java。
运行此命令,然后清理项目,解决了问题:
sudo apt-get install ia32-libs
答案 10 :(得分:0)
如果您在Linux机器上运行默认下载,请确保sdk / build-tools / android-xyz / *中的可执行文件(aapt等)是可执行的...
答案 11 :(得分:0)
尝试执行第一个教程时遇到了同样的错误。为了让应用程序运行,我编辑了MainActivity.java,看起来像这样
package com.example.myfirstapp;
import android.app.Activity; import android.os.Bundle;
公共类MainActivity扩展了Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}