You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin共享项目更新后触发资源未找到异常求助

解决Xamarin共享项目更新后资源ID不存在的异常

这种资源ID找不到的问题在Xamarin共享项目更新后挺常见的,先把你遇到的异常信息贴出来方便对照:

Android.Content.Res.Resources+NotFoundException: Resource ID #0x7f030046(十进制:2130903110)
at android.content.res.Resources$NotFoundException: Resource ID #0x7f030046
at android.content.res.Resources.getValue(Resources.java:2558)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:4360)
at android.content.re...

下面是几个针对性的解决步骤,按顺序尝试:

  • 清理重建+删除缓存文件
    这是最常用的第一步:先在Visual Studio里点击Build → Clean Solution,等待清理完成后再点击Build → Rebuild Solution。如果还是不行,手动删除Android项目和共享项目下的bin、obj文件夹,这些文件夹里的旧资源缓存很可能是导致ID映射混乱的元凶,删除后重新生成就能刷新资源ID。

  • 检查共享项目的资源完整性
    确认ID #0x7f030046对应的资源(比如布局、图片、字符串等)是否真的存在于共享项目中:

    • 可以打开共享项目的Resources文件夹,逐个检查子目录(layout、drawable、values等),看看有没有不小心删除的文件;
    • 注意Android资源文件名是大小写敏感的,比如MyImage.png和myimage.png会被识别成两个不同的资源;
    • 还要确认资源的Build Action是否正确:右键资源文件 → 属性,确保布局文件设为AndroidResource,字符串资源同样设为AndroidResource,不要选成Content或者其他类型。
  • 修正资源引用方式
    如果是在代码里引用资源,绝对不要用硬编码的ID(比如直接写2130903110),一定要用强类型的引用,比如Resource.Layout.MyPage、Resource.Drawable.AppIcon,这种方式会自动关联最新生成的资源ID,避免更新后ID失效。如果是在布局文件里引用,检查有没有拼写错误,比如@drawable/my_icon是不是写错了文件名。

  • 重新生成Resource.Designer.cs文件
    Android项目的Resource.Designer.cs是自动生成的资源ID映射文件,更新共享项目后可能出现文件未同步的情况:

    • 先备份这个文件(以防万一),然后直接删除它;
    • 重新生成解决方案,系统会自动根据当前的资源重新生成正确的Resource.Designer.cs,里面会包含最新的资源ID映射。
  • 检查版本兼容性
    确认更新后的共享项目和你的Android项目使用的Xamarin.Android版本是否一致:打开NuGet包管理器,分别查看共享项目和Android项目的Xamarin.Android包版本,如果版本差异较大,可能会导致资源生成逻辑不兼容,把两个项目的版本统一成同一个稳定版再试试。

内容的提问来源于stack exchange,提问作者Bz Burr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:14:54