【问题标题】:Error No resource found that matches the given name (at 'src' with value '@drawable/button1')错误找不到与给定名称匹配的资源(在“src”处,值为“@drawable/button1”)
【发布时间】: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);

}

截图链接:http://s7.postimage.org/3v4tu9ifv/UI_Designs.png

【问题讨论】:

  • 在 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


【解决方案1】:

我认为这本书的代码不正确。在我家试过,效果很好。发现我的日食实际上被打破了。必须删除并重新安装 eclipse。

对于给我带来的任何不便,我深表歉意,并感谢社区的帮助。

【讨论】:

    【解决方案2】:

    根据您的项目资源管理器的屏幕截图...您的drawable-hdpi 文件夹中没有button1.xml

    如果您希望使用所有相同尺寸的图像,密度无关紧要,您可以创建一个新文件夹,名称为 drawable,它将处理所有屏幕密度。

    【讨论】:

    • 我也将 button1.xml 添加到 hdpi 文件夹中。在我这样做之后我又尝试了一次清理,但仍然没有得到 R 文件。感谢您对可绘制对象的提醒,我看到其他人这样做并想知道。
    • 尝试将所有资源添加到 drawable 文件夹中,看看是否有希望解决任何问题……如果不是……说实话。我不知道为什么 R 文件在我尝试带你走完之后没有生成...
    • 浏览并从网站上下载了所有源代码,并逐行浏览。网站上列出的代码与书中列出的代码不同。正如我上面所说,我给出版商发了电子邮件。代码是如此的不同,我认为有人犯了一个重大错误。感谢您的支持,对我造成的任何困惑表示歉意。
    • 你把所有东西都整理好了吗?
    • 有点,即使只是从书中导入了所有代码,它仍然损坏。非常失望的是,出版商的代码已经完成了大约 90%(它的工作原理并没有按照书中所说的那样做)。非常感谢你,我不知道如何给你代表,但我会研究它并给你一些。
    【解决方案3】:

    我遇到了类似的问题,因为

    1:我没有在@/drawable之后添加正确的图像名称

    2:我也没有在drawable-ldpi文件夹中添加图片。

    <ImageView
        android:id="@+id/imageDisplay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/nasalogo">
    </ImageView>
    

    在我的情况下,我需要在我的 drawable-ldpi 文件夹中添加名为nasiogo 的图像

    这也是我的 values/string.xml 的样子

    <?xml version="1.0" encoding="utf-8"?>
    

    PCWorldRssReaderActivity

    <string name="text_image_title">Decorating the Sky</string>
    
    <string name="text_image_date">Mon, 19 Aug 2013 00:00:00 EST </string>
    <string name="text_image">nasalogo</string>
    
    <string name="text_image_description"> This is mosaic image</string>
    

    稍后

    【讨论】:

      【解决方案4】:

      您可以尝试在您的 java 代码中执行此操作吗?

      ImageButton imageButton = new ImageButton(context);
      imageButton.setImageResource(R.drawable.button1);
      

      【讨论】:

      • 不确定您希望我在哪里添加,不幸的是,当我添加到 MainActivity.java 时,它会出错。将 java 代码添加到主要问题以供审查。 R.layout 和 R.menu 出现错误,因为现在没有 R 文件。
      • 您必须将其添加到您想要将 imageButton 添加到布局的 java 文件中。这是您的 main.xml 文件的一部分吗?
      • 到目前为止,我都在通过 XML 做所有事情。它的书是教它的方式。到目前为止,我还没有创建任何 java 文件。
      • 正如他在上面的其中一个 cmets 中所说,没有生成 R 文件。
      • 能否检查一下是否存在阻止生成 R 文件的错误?
      【解决方案5】:

      我在对项目进行逆向工程时遇到了这个问题, “错误:错误:未找到与给定名称匹配的资源(在'背景',值为'@color/default_bg')。”

      分辨率: 将以下属性添加到“/project_/res/values/colors.xml”

      <color name="default_bg">#aa000000</color>
      

      最后看起来像这样:

      <resources>
        <color name="black_overlay">#66000000</color>
         <color name="default_bg">#aa000000</color>
      </resources>
      

      【讨论】:

      • 我有drawable,它在我的布局的设计视图中显示良好。然而,我仍然得到错误!我该怎么办?
      【解决方案6】:

      还有另一种解决方案。 将所有图像文件夹(具有相同名称)复制到所有 4 个可绘制文件夹中。 并执行 android:src="@drawable/filename" 那时它对我有用!

      【讨论】:

        【解决方案7】:

        我在 AndroidStudio 中遇到过这种情况,结果我的文件被命名为 .png,但却是 jpeg。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多