使用Rg.Plugins.Popup与颜色选择器时Xamarin App启动报错
解决Android下Resource ID #0x7f0700c3找不到的问题(Rg.Plugins.Popup + Spillman ColorPicker)
这个错误我之前在整合第三方Xamarin.Forms插件时也碰到过,大概率是资源同步不完整或者初始化步骤缺失导致的,给你几个针对性的排查和解决步骤:
1. 先确认Rg.Plugins.Popup的初始化有没有做对
在Android项目的MainActivity里,必须在加载App之前初始化Popup插件,这一步很容易忘,漏掉的话会引发各种资源或渲染异常:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); // 优先初始化Popup插件 Rg.Plugins.Popup.Popup.Init(this); Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App()); }
2. 检查NuGet包的安装是否覆盖了所有项目
很多人容易只在共享项目(PCL/Shared)里装NuGet包,却忘了给Android项目也装上。你要确保:
- 解决方案里的所有项目(包括Android项目)都正确安装了
Rg.Plugins.Popup和Spillman.Xamarin.Forms.ColorPicker - 如果不确定,先卸载这两个包,然后重新安装,安装时在NuGet管理器的"安装到"选项里勾选所有项目
3. 清理重建+删除缓存文件夹
资源缓存是这类问题的重灾区,按这个流程来:
- 右键解决方案 → 清理解决方案
- 右键Android项目 → 卸载项目,然后再重新加载
- 手动删除Android项目下的
bin和obj文件夹,然后重新构建整个解决方案
4. 验证Spillman ColorPicker的资源是否被正确嵌入
Spillman的ColorPicker在Android端依赖自己的资源文件(比如颜色选择器的布局、图标),如果这些资源没被同步到Android项目里,就会出现Resource ID找不到的情况:
- 打开Android项目的
Resources文件夹,检查drawable、layout目录下有没有来自Spillman.Xamarin.Forms.ColorPicker的资源文件 - 如果没有,尝试在NuGet管理器里更新该包,或者卸载后重新安装,强制同步资源
5. 排查BindingContext的设置是否间接引发问题
你在XAML里直接把BindingContext设为colorPicker:ColorPickerViewModel,虽然这本身不会直接触发资源错误,但可以暂时注释掉这行代码,然后初始化页面看看是否还报错,排除ViewModel构造函数里触发资源加载的可能。
如果以上步骤都试过还是不行,可以建一个最小化的测试项目,只包含这两个插件和你的ColorPicker页面,看看能不能复现问题,这样能快速排查是不是项目其他代码的冲突。
内容的提问来源于stack exchange,提问作者A. Vreeswijk
相关产品推荐
相关产品推荐

