错误:没有找到与给定名称匹配的资源(在'value'为'@mipmap/Icon'的'icon'处)

8
这是我第一次尝试Xamarin,只是在Xamarin.com上运行示例。

但是当我尝试构建时,出现了这个错误。很奇怪,因为我可以从属性选项卡上的列表中选择图标,但VS在构建过程中找不到它们。

我尝试将文件移动到路径非常短的位置。

我尝试添加具有不同名称的新图标,并在属性页面中选择它们。

这两种方法都没有起作用。

AndroidManifest.xml文件如下所示:

<?xml version="1.0" encoding="utf-8"?> 
  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Phoneword.Phoneword" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">
    <!--suppress UsesMinSdkAttributes-->
    <uses-sdk android:minSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <application android:allowBackup="true" android:label="Phoneword" android:icon="@mipmap/Icon" android:name="android.app.Application" android:debuggable="true">
      <activity android:label="Phone Word" android:name="md5eb8cee9bb2852617ab2e56c7bf729ae8.MainActivity">
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <provider android:name="mono.MonoRuntimeProvider" android:exported="false" android:initOrder="2147483647" android:authorities="Phoneword.Phoneword.mono.MonoRuntimeProvider.__mono_init__" />
      <!--suppress ExportedReceiver-->
      <receiver android:name="mono.android.Seppuku">
        <intent-filter>
          <action android:name="mono.android.intent.action.SEPPUKU" />
          <category android:name="mono.android.intent.category.SEPPUKU.Phoneword.Phoneword" />
        </intent-filter>
      </receiver>
    </application>
  </manifest>
2个回答

13

这里有一个解决方法。打开你项目中的Properties文件夹,找到assemblyinfo.cs文件,然后添加下面这行代码:

[assembly: Application(Icon = "@mipmap/icon")]


1
那么,这是一个错误吗? - mrmowji
2
看起来在《Hello, Android: Quickstart》中有些次要的遗漏和过时的项目。 - Walt Sorensen

4
解决方案:
  1. 将所有的"Icon.png"文件名更改为mipmap文件夹中的"icon.png"。
  2. 清理项目
  3. 重新打开Visual Studio
  4. 在AndroidManifest中选择“@mipmap/icon”作为“应用程序图标”。

你能解释一下为什么这样做会修复它吗?谢谢 :) - CompanyDroneFromSector7G
1
这是更好的解决方案,因为在mipmap文件夹中的资源必须具有所有字母均为小写的名称。您不能使用连字符,但可以使用下划线。为了更清楚地说明:Icon具有大写字母,因此在mipmap文件夹中禁止使用它的名称。因此,解决方案是将其重命名为icon。如果您想使用较长的名称,请考虑使用下划线,例如my_company_icon。或者,将具有大写字母的图标放在drawable文件夹中,其中允许使用大写字母!(但那里也不允许使用连字符!) - jfmg

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