oynix

于无声处听惊雷,于无色处见繁花

解决Android ViewBinding爆红

ViewBinding生成的类经常在一些不经意的操作之后爆红,说找不到,虽然不影响运行,但是看起来很不爽,即便你能看到生成类就在那躺着,但是AS就是说找不到。既然它自己找不到,那就给它指个路。

在app下的build.gradle添加配置,将生成的文件手动添加进去即可

1
2
3
4
5
6
7
android {
sourceSets {
debug {
java.srcDirs = ['src/main/java', 'build/generated/data_binding_base_class_source_out/debug/out']
}
}
}

当然,也可以包含完整的资源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
android { 
sourceSets {
main {
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
jniLibs.srcDirs = ['libs']
res.srcDirs = ['src/main/res']
java {
srcDirs = ['src/main/java']
exclude 'src/ignoreDir' // 不想包含文件的路径
}
}
debug {
java.srcDirs = ['src/main/java', 'build/generated/data_binding_base_class_source_out/debug/out']
}
release {
java.srcDirs = ['src/main/java', 'build/generated/data_binding_base_class_source_out/release/out']
}
}
}

但是,这样会带来另外一个问题,原本点生成的ViewBinding生成类,是跳转到对应的xml布局文件中,当添加了资源目录后,跳转到的就是生成的类文件了。原因是,加入到sourceSets后,生成类文件就被IDE当成普通的类文件处理。我觉得,相比于爆红,这个倒是可以接受的,不通过生成类跳转便是了。

------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2022/04/d5217b2a959b/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道