Android Studio 禁用 "Expected resource of type string"

AndroidStudio disable "Expected resource of type string"

我刚刚尝试为我的一个项目生成签名的 apk(我之前已经这样做过),但是(可能是因为更新了 Android Studio)我得到了

Error:Error: Expected resource of type string [ResourceType]

这是因为我使用的是 Butterknife 的 @BindString,它会生成类似的东西

target.settings = res.getString(2131230792);

如何让工作室不将此检测为错误?我尝试在设置中搜索,但没有成功。

对此的回答是:在 build.gradle

中禁用 lint 规则
android {
  lintOptions {
    disable "ResourceType"
  }
}

编辑: 从 Eclipse 迁移到 Android Studio 时尤其可能发生这种情况。

据报道on the GitHub project。 ButterKnife 下个版本会修复

there 指出了解决方法,即在 app 模块上添加一个包含以下内容的 lint.xml 文件,以忽略 *$$ViewBinder 类(ButterKnife 生成的):

<issue id="ResourceType">
    <!-- Remove this when this is fixed: https://github.com/JakeWharton/butterknife/issues/338 -->
    <ignore path="**/*$$ViewBinder.java" />
</issue>

我也有类似的问题。使用 getString 方法。结果我试图从 strings.xml 而不是 ids.xml 获取字符串值,因为我是用 getString(R.id.MYSTRING) 获取它的,而它应该是 R.string.MYSTRING

也许更好的解决方案是在方法定义之前使用 @SuppressLint("ResourceType") 暂时禁用 error/warning。

这是针对具有相同 ID 的一些视图,您尝试为其中之一更改一些 属性。 当尝试生成 apk 时 android 发现一些关于资源 id

的冲突

解决

更好的方法是找到代码并尝试用另一种方式解决这个问题

祝你好运