构建Android(Xamarin)应用报错:@mipmap-mdpi/myicon与icon属性引用不兼容
报错根源
你提供的AndroidManifest.xml中,MainActivity节点的android:icon属性写法不符合Android资源引用规范:
<!-- 错误写法 --> <activity android:icon="@mipmap-mdpi/myicon" android:label="xyz" android:theme="@style/AppTheme" android:name="crc3333640c4af442c.MainActivity">
Android的icon属性要求接收通用的资源引用,不允许在引用路径中直接指定-mdpi这类密度限定后缀,系统会自动根据运行设备的屏幕密度匹配对应密度文件夹下的图标文件,手动指定密度就会触发incompatible with attribute icon (attr) reference报错。
解决步骤
- 修正Manifest资源引用,将上述错误行的icon属性改为无密度后缀的写法:
<!-- 正确写法 --> android:icon="@mipmap/myicon" - 检查项目资源结构,确认
Resources目录下的各密度mipmap文件夹(mipmap-mdpi、mipmap-hdpi、mipmap-xhdpi等)中都存在对应尺寸的myicon图标文件,文件名全小写、无特殊字符和空格。 - 验证图标文件属性,右键点击每个
myicon文件,在属性面板中确认「生成操作」设置为AndroidResource,「复制到输出目录」设置为「如果较新则复制」。 - 清理重建项目,先执行「清理解决方案」操作,手动删除项目根目录下的
bin和obj文件夹后重新生成,避免缓存导致的残留报错。
可选排查项
如果修改后仍有报错,可额外检查:
- 图标文件无损坏,尺寸符合Android启动图标规范:mdpi为4848px、hdpi为7272px、xhdpi为9696px、xxhdpi为144144px、xxxhdpi为192*192px
- 图标文件名未与其他项目资源或系统内置资源重名
内容的提问来源于stack exchange,提问作者Ron
相关产品推荐
相关产品推荐

