执行cordova build android失败:找不到android.support相关类
解决Cordova集成Firebasex后Android构建失败问题
嘿,看你的构建日志,问题很明确——是AndroidX和旧Support Library的依赖冲突搞的鬼!cordova-plugin-firebasex默认使用AndroidX,但你项目里的其他插件(比如Diagnostic、Camera、Printer这些)还在依赖旧的Android Support Library,两者不兼容导致编译时找不到对应的类。我给你整理了几个解决步骤,按顺序来应该能搞定:
1. 安装Cordova AndroidX兼容插件
Cordova官方提供了两个插件,可以自动帮你把项目迁移到AndroidX,还能适配其他旧插件的依赖:
# 启用AndroidX支持 cordova plugin add cordova-plugin-androidx # 自动适配旧插件的support库引用为AndroidX cordova plugin add cordova-plugin-androidx-adapter
这俩插件搭配用,大部分冲突都能自动解决。
2. 更新冲突的旧插件
有些老版本的插件本身就不支持AndroidX,建议把报错里提到的几个插件更新到最新版本:
- 更新Diagnostic插件:
cordova plugin remove cordova-plugin-diagnostic cordova plugin add cordova-plugin-diagnostic@latest
- 更新Camera插件:
cordova plugin remove cordova-plugin-camera cordova plugin add cordova-plugin-camera@latest
- 更新Printer插件:
cordova plugin remove cordova-plugin-printer cordova plugin add cordova-plugin-printer@latest
3. 清理缓存后重新构建
旧的构建缓存可能残留冲突的依赖,先清理再构建:
# 清理Android平台的构建缓存 cordova clean android # 重新执行构建命令 cordova build android
4. 手动配置Gradle(如果自动方案失效)
如果上面的步骤还没解决问题,可以手动修改platforms/android/build.gradle文件,强制项目使用AndroidX依赖:
在文件中添加以下配置:
android { // 确保编译版本是Java 8 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } // 强制所有依赖使用AndroidX版本 configurations.all { resolutionStrategy { force 'androidx.core:core:1.7.0' force 'androidx.appcompat:appcompat:1.4.1' force 'androidx.print:print:1.0.0' } }
修改后再重新执行构建命令即可。
内容的提问来源于stack exchange,提问作者shivam bahuguna
相关产品推荐
相关产品推荐

