Xamarin Android报错:未找到Resource android:style/AppTheme.Base
解决Xamarin Android中“未找到AppTheme.Base”的报错问题
嘿,刚帮你梳理了下代码,你遇到的未找到AppTheme.Base错误原因非常明确——你的资源文件里根本没有定义AppTheme.Base这个主题,但MyTheme却把它指定为父主题了!
问题出在哪?
看你的代码片段:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <!-- 这里引用了不存在的AppTheme.Base --> <style name="MyTheme" parent="AppTheme.Base"></style>
你只定义了AppTheme作为基础主题,但MyTheme的父主题写的是AppTheme.Base,系统自然找不到这个未定义的主题,所以抛出错误。
两种解决方案,选适合你的:
方案1:直接让MyTheme继承AppTheme
如果你本来就不需要分层主题,只是写错了父主题名称,直接修改MyTheme的parent即可:
<style name="MyTheme" parent="AppTheme"></style>
方案2:先定义AppTheme.Base再使用
如果你原本的设计是要做主题分层(Base作为底层基础,AppTheme在它之上扩展),那需要先补上AppTheme.Base的定义:
<!-- 先定义基础的Base主题 --> <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <!-- 让AppTheme继承Base主题,可在此添加额外自定义属性 --> <style name="AppTheme" parent="AppTheme.Base"> </style> <!-- 现在MyTheme就能正常继承AppTheme.Base了 --> <style name="MyTheme" parent="AppTheme.Base"></style>
额外小提示:你的启动屏主题有个小矛盾
看你的MyTheme.Splash配置:
<style name="MyTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar"> <!-- ...其他属性 --> <item name="android:windowActionBar">true</item> </style>
你选的父主题是Theme.AppCompat.Light.NoActionBar(本身就不带ActionBar),但又设置了android:windowActionBar="true",这会导致样式冲突,建议删掉这个item,确保启动屏没有ActionBar和标题栏,符合启动屏的预期效果。
内容的提问来源于stack exchange,提问作者Kira Nofans
相关产品推荐
相关产品推荐

