【发布时间】:2013-01-30 19:57:40
【问题描述】:
我认为这本书的代码不正确。在我家试过,效果很好。发现我的日食实际上被打破了。必须删除并重新安装 eclipse。
这是我在这里的第一篇文章,所以如果我没有遵守某些规则,请告诉我。 我试图搜索并发现一些具有相同错误的帖子,但它们处理的是字符串。 我正在关注面向绝对初学者的 Android 应用程序(第 2 版),在第 179 页上,您将 button1.xml 带入了 res/drawable。当我进入 layout/activity_main.xml 并输入时
<ImageButton
android:id="@+id/button_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button1"
android:contentDescription="@string/app_name"/>
错误提示 android:src “错误:错误:未找到与给定名称匹配的资源(在 'src' 处,值为 '@drawable/button1')。”
现在有一些事情让我感到困惑,我正在使用 eclipse,并且我有 4 个可绘制文件夹(drawable-hdpi、drawable-ldpi、drawable-mdpi 和 drawable-xhdpi),我已经转到 New>File on 4 个可绘制文件夹中的每一个,并导入了具有各自分辨率的 button1_focused.png、button1_pressed.png 和 button1_normal.png。我还将 button1.xml 放在每个文件夹中。
button1.xml如下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/button1_pressed" />
<item android:state_focused="true"
android:drawable="@drawable/button1_focused" />
<item android:drawable="@drawable/button1_normal" />
</selector>
我尝试了 android:background 而不是 android:src 并且也出现了错误。我看到它的错误表明 src (或背景)没有文件。只是不知道该放什么。
Java 代码 包 com.example.ui_designs;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
ImageButton imageButton = new ImageButton(context);
imageButton.setImageResource(R.drawable.button1);
}
【问题讨论】:
-
在 Eclipse 中,转到
Project选项卡并单击Clean。您的R文件是否生成?你能看到列出的资源吗? -
我执行了清理,没有生成 R 文件。我检查了我的资源,所有这些似乎都是正确的命名约定。我试图添加一个 SS,但由于代表无法添加。 button1_focused.png、button1_pressed.png、button1_normal.png 和 button1.xml
-
如果未生成 R 文件,这意味着某处存在一些错误,导致无法正确编译,更有可能出现在您的 XML 文件中。在项目资源管理器中,右键单击您的项目名称并转到
Android Tools->Run Lint: Check for common errors -
Lint 给了我 2 个警告 0 个错误,一个是“不针对最新版本的 Android;...”我正在使用 minSdkVersion="8" 和 targetSdkVersion="16",另一个警告was 资源 R.string.hello_world 似乎未使用。我删除了那个字符串,因为我不会使用它。删除后只有一个警告。
-
这很奇怪...
Android Tools怎么样 ->Fix Project Properties附带说明,R文件不在您的src文件夹中,位于项目资源管理器中,它会显示在gen文件夹中,以防您没有意识到这一点。
标签: android imagebutton android-image