升级Android Studio及Gradle后Firebase模块构建时随机报字节码找不到错误
解决Gradle升级后Firebase类随机找不到字节码的问题
我之前升级Gradle相关组件后,也碰到过完全一样的随机报错!这种问题大概率是旧构建缓存和新构建系统不兼容导致的,给你几个亲测有效的解决办法:
1. 彻底清理项目缓存
这是最直接的修复方式,先从IDE操作入手:
- 打开Android Studio,依次点击
Build > Clean Project,完成后再点击Build > Rebuild Project - 如果还是报错,手动删除项目根目录下的
.gradle文件夹,以及app模块下的build文件夹,然后点击File > Sync Project with Gradle Files重新同步项目
2. 统一Firebase依赖版本
混合不同版本的Firebase库也会引发字节码匹配问题:
- 确保所有Firebase相关依赖(比如
firebase-storage、firebase-auth等)使用完全相同的版本号 - 可以在
build.gradle(Module: app)里用统一变量管理版本,避免手动写错:ext { firebaseVersion = "16.0.1" // 选择和你的Gradle版本兼容的Firebase版本 } dependencies { implementation "com.google.firebase:firebase-storage:$firebaseVersion" implementation "com.google.firebase:firebase-auth:$firebaseVersion" // 其他Firebase依赖都复用这个变量 }
3. 临时禁用增量构建(排查用)
如果清理缓存后还是偶发报错,可以临时关闭构建缓存验证:
- 在项目根目录的
gradle.properties文件中添加一行:android.enableBuildCache=false - 重新构建项目,如果报错消失,说明就是缓存兼容性问题,之后可以改回
true,定期清理缓存即可
4. 匹配Google服务插件版本
根目录build.gradle中的google-services插件版本要和Gradle插件版本兼容:
- 比如Gradle插件
3.1.0对应的google-services可以使用4.0.1版本,修改后同步项目:buildscript { dependencies { classpath 'com.android.tools.build:gradle:3.1.0' classpath 'com.google.gms:google-services:4.0.1' } }
问题原因说明
升级Gradle插件和Gradle版本后,旧的增量构建缓存里的字节码文件和新构建系统生成的字节码不匹配,而Firebase库需要经过字节码转换处理,这种不匹配就会随机触发找不到类的报错,清理缓存后用新的构建规则生成字节码就能解决。
内容的提问来源于stack exchange,提问作者Ilja
相关产品推荐
相关产品推荐

