基于RecyclerView的Word Game Master崩溃,gradient angle异常求助
问题排查与解决方案
核心异常根源
堆栈明确指出:<gradient>标签的angle属性值必须是45的整数倍(0°、45°、90°……315°),这是Android系统的强制规则。你的background_rv_item.xml(大概率是这个Drawable文件)里的<gradient>用了不符合要求的angle值,直接触发XmlPullParserException,进而引发布局解析失败的InflateException,以及连锁的InvocationTargetException、Resources$NotFoundException。
具体修复步骤
- 修正Drawable中的渐变角度
打开background_rv_item.xml,找到<gradient>标签,把angle属性改成45的倍数。比如原来写的angle="30"就改成angle="45"或angle="0";angle="60"就改成angle="45"或angle="90"。正确示例:<gradient android:angle="45" android:startColor="#FFE8F4F8" android:centerColor="#FFB4D8E7" android:endColor="#FF73A9C8" android:type="linear" /> - 检查所有关联布局
改完后重新编译运行,如果还是崩溃,去item_level.xml里排查是否引用了其他有同样问题的Drawable,确保所有<gradient>的angle都合规。 - 排查其他潜在点
- 确认
SquareFrameLayout自定义View的构造、初始化逻辑没有抛出异常,避免InvocationTargetException的其他触发可能; - 检查
LevelAdapter里加载布局的代码,确保LayoutInflater.from(context).inflate(R.layout.item_level, parent, false)的布局ID正确,不会因为ID错误导致Resources$NotFoundException。
- 确认
匹配目标界面的小建议
参考你想要的卡片式渐变列表效果,调整渐变参数:
- 要斜向渐变就用45°/135°/225°/315°;
- 水平渐变用0°(左到右)或180°(右到左);
- 垂直渐变用90°(上到下)或270°(下到上),配合合适的颜色过渡就能贴近目标效果。
内容的提问来源于stack exchange,提问作者hosein-developer
相关产品推荐
相关产品推荐

