Dav*_*iño 5 android lint android-databinding
Lint正在考虑使用数据绑定生成的类使用的布局为未使用,因此会触发相应的UnusedResource警告。
例如:
../../src/main/res/layout/activity_start.xml:2:资源R.layout.activity_start似乎未使用
尽管在使用数据绑定生成的类之一中有一个引用:
public static ActivityStartBinding inflate(android.view.LayoutInflater inflater, android.databinding.DataBindingComponent bindingComponent) {
return bind(inflater.inflate(com.tuenti.messenger.R.layout.activity_start, null, false), bindingComponent);
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使棉绒考虑那些生成的类,以避免这些误报?
小智 9
我一直在研究这个问题,并找到了一个允许使用生成的类的解决方案。
首先,必须将checkGeneratedSources = true添加到lintOptions块中。例如,在您的应用模块内部build.gradle:
android {
lintOptions {
checkDependencies = true
checkGeneratedSources = true
}
}
Run Code Online (Sandbox Code Playgroud)
现在,Lint应该包括生成的源文件,并且不再提供误报。您可能会遇到其他问题,其中生成的文件会引发不同的错误,就我而言,与Room相关的某些生成的文件违反了RestrictedApi规则。如果是这种情况,只需在lint.xml中添加一条规则即可将该规则从生成的代码中排除,如下所示:
<issue id="RestrictedApi" severity="error">
<ignore path="build" />
</issue>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |