找不到与给定名称匹配的资源

37

这个:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="de.androidbuch.rechner"
  android:versionCode="1"
  android:versionName="1.0">

  <uses-sdk android:minSdkVersion="7"></uses-sdk>
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:theme="@android:style/Theme.Light">

    <activity android:name=".FormularActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

这是我的 AndroidManifest.xml,在第8行和第11行中出现错误:

找不到与给定名称匹配的资源(位于"value"为"@string/app_name" 的"label"处)

找不到与给定名称匹配的资源(位于"value"为"@string/app_name" 的"label"处)

这真的很奇怪,我没有移动过values文件夹。

8个回答

56

你是否检查确保在res/values/strings.xml中定义了该字符串资源?

<string name="app_name">"My App"</string>
有时候,我注意到如果你的任何 .xml 文件有错误,Eclipse 也会抛出一些难以追踪的错误。我认为解析器无法很好地恢复,有时你得到的错误可能会给你带来误导。

1
哦,有时候我真的很蠢!非常感谢你!那个文件在我的程序中根本不存在 :) - sam
这个文件在我的项目中也不存在。你能否提供更多详细信息来修复这个错误?我创建了一个strings.xml文件并放在上面的代码行,但它本身却出错了。是否还需要添加更多内容到这个文件? - ProblemsOfSumit

2

已修复

您需要像这样添加缺失的字符串资源:

enter image description here


1

我也遇到了图片的相同错误..只需将扩展名从".png"或其他改为".jpg",然后在清理项目并重新编译后它们就能正常工作。


1

可能的原因之一是像我这样,在某个序列中添加和删除项目时,字符串GUI中存在错误。

解决方案: 只需在XML模式下打开strings.xml,而不是在GUI模式下打开,您会发现它与之前不同,并且显然有无效的额外文本粘贴在周围或开头;虽然它不会在文件strings.xml上报错,但修复它们,然后清理并运行即可。


0

只需在android平台底部添加上述行"config.xml"。 完美运作。 经过多个小时,我得到了这个解决方案。

享受编码的乐趣...


0
解决方法是确保您的Cordova CLI已更新到最新版本,然后启动一个新应用程序(或重新添加Android平台)。
npm i -g cordova@latest

然后:

ionic cordova platform rm android
ionic cordova platform add android

如果您计划使用cordova-android 6,以下是您需要对config.xml进行的更改:
替换此行:
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">

使用这个:

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">

替换这一行:

<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />

使用这个:

<resource-file src="resources/android/xml/network_security_config.xml" target="res/xml/network_security_config.xml" />

0
当你将任何东西放在/app/App_Resources/Android/src/main/res目录中时,它会自动替换默认资源,这是设计上的考虑,允许用户完全覆盖资源。我同意当前情况会导致构建过程中出现意外错误,但可以通过在strings.xml中添加以下行来轻松解决问题:
<string name="app_name">__NAME__</string>
<string name="title_activity_kimera">__TITLE_ACTIVITY__</string>

-7

我曾经遇到过同样的问题。从 android:label="@string/app_name" 中移除 "@string",它就会正常工作。

android:label="@string/app_name"  ->  android:label="app_name"

4
这将把活动的标题设置为字面字符串“app_name”,这可能不是任何人想要的。 - Ashley
7
回答非常糟糕,我必须说。 - Siddharth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接