解决Android应用启动报错java.lang.NoClassDefFoundError: InternalAppCheckTokenProvider
解决方案:Firebase依赖不兼容导致的
NoClassDefFoundError 问题根源
报错Failed resolution of: Lcom/google/firebase/appcheck/interop/InternalAppCheckTokenProvider,本质是Firebase组件版本不匹配,再加上Android Gradle Plugin(AGP)和Gradle版本过旧,无法正确处理新依赖的兼容逻辑。
修复步骤
1. 升级AGP与Gradle版本
当前使用的AGP 3.5.2 + Gradle 5.4.1版本过老,无法适配现有Firebase库,建议升级到兼容组合:
- 修改根目录
build.gradle中的依赖:
buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.4.2' classpath 'com.google.gms:google-services:4.4.1' } }
- 修改
gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
2. 统一Firebase组件版本
Firebase各组件版本必须保持兼容,推荐用Firebase BOM自动管理版本,避免手动匹配出错。修改app模块build.gradle的依赖块:
dependencies { // 引入Firebase BOM,统一管控所有Firebase库版本 implementation platform('com.google.firebase:firebase-bom:32.7.0') // 移除各Firebase库的版本号,由BOM自动分配兼容版本 implementation 'com.google.firebase:firebase-storage' implementation 'com.google.firebase:firebase-functions' implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-database' implementation 'com.google.firebase:firebase-auth' implementation 'com.google.firebase:firebase-config' implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-appcheck' // 其他原有依赖保持不变 }
3. 清理重建项目
- 执行Android Studio菜单
File > Invalidate Caches... > Invalidate and Restart清空缓存 - 运行
Clean Project+Rebuild Project(或终端执行./gradlew clean build)
4. 确认混淆配置
当前minifyEnabled已设为false,确保ProGuard不会误删必要类,若后续开启混淆,需添加Firebase相关的混淆规则。
验证
完成上述操作后重新运行应用,NoClassDefFoundError问题即可解决。
内容的提问来源于stack exchange,提问作者thank you
相关产品推荐
相关产品推荐

