解决问题 inner element must either be a resource r... - 简书

3,298

-Q: 错误<item>内部元素必须是资源引用或空

升级Andriod Studio之后编译发现如下错误

Android resource compilation failed
***\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:442: 
error: <item> inner element must either be a resource reference or empty.

Android资源编译失败内部元素必须是资源引用或空

打开报错文件,查看442行发现如下内容

···
<item name="webviewload_monitor_cancel_point" type="id">webviewload_monitor_cancel_point</item>
····

-A(1): 错误<item>内部元素必须是资源引用或空

  • 如果是自己的文件
    直接找到文件后去掉里面的内容,改为下面这样就对了
<item name="webviewload_monitor_cancel_point" type="id"/>
  • 如果不是自己的文件自己没办法去改
    临时解决办法是gradle.properties中添加如下配置
android.enableAapt2=false

㊟ :这个方法2018年结束之后随着版本更新就没有办法使用了,编译时提示如下

WARNING: The following project options are deprecated and have been removed:
android.enableAapt2
This property has no effect, AAPT2 is now always used.

顺便呢你就让人家去改去吧(夺命催更๑乛◡乛๑)这中间需要时间就不确定了,现如今已经是2019年了上面的方法已经失效那该怎么办呢?

-A(2):修改第三方文件的错误<item>内部元素必须是资源引用或空

其实呢咱也没必要等着人家去改,咱们可以借助gradle中的resValue这个方法去修改编译中的文件

resValue "id", "webviewload_monitor_cancel_point",""

这样就把之前有问题的内容覆盖掉了。