Ionic 3迁移AndroidX后Android构建报错求助
解决Ionic 3 + Cordova AndroidX迁移后的构建错误
你的问题核心是Jetifier没有完全将旧的Android Support库引用转换为AndroidX,再加上项目里存在重复的Support库依赖,导致构建时找不到android.support相关类。下面是一步步的解决方案:
1. 清理Project.properties中的旧Support库依赖
你的project.properties里有多条重复的com.android.support相关配置,这些会干扰Jetifier的转换,而且AndroidX已经完全替代了Support库,直接删除以下配置项:
cordova.system.library.9=com.android.support:support-core-utils:27.+ cordova.system.library.14=com.android.support:support-v4:28.+ cordova.system.library.15=com.android.support:appcompat-v7:28.+ cordova.system.library.3=com.android.support:support-v4:28.+ cordova.system.library.4=com.android.support:appcompat-v7:28.+
2. 升级/替换不支持AndroidX的插件
部分旧插件硬编码了Support库的导入,需要替换为支持AndroidX的版本:
- cordova-plugin-firebase:这个插件已停止维护,建议替换为支持AndroidX的fork版本
cordova-plugin-firebasex:cordova plugin remove cordova-plugin-firebase cordova plugin add cordova-plugin-firebasex - cordova-plugin-googlemaps:确保升级到v2.7.1及以上版本(该版本开始支持AndroidX):
cordova plugin remove cordova-plugin-googlemaps cordova plugin add cordova-plugin-googlemaps@latest --variable API_KEY_FOR_ANDROID="你的谷歌地图API密钥" - 其他插件(如appsflyer):执行以下命令更新到最新版本:
cordova plugin update cordova-plugin-appsflyer-sdk
3. 确认AndroidX配置正确
检查platforms/android/gradle.properties文件,确保以下配置存在且未被注释:
android.useAndroidX=true android.enableJetifier=true
4. 清理构建缓存
旧的构建缓存可能残留Support库的引用,执行以下命令清理:
rm -rf platforms/android/.gradle rm -rf platforms/android/build cordova clean android
5. 修复剩余的硬编码导入(如果上述步骤无效)
如果还有报错,说明某个插件内部存在未被Jetifier转换的硬编码导入,需要手动修改:
- 将
import android.support.v4.app.ActivityCompat;替换为import androidx.core.app.ActivityCompat; - 将
import android.support.v4.os.EnvironmentCompat;替换为import androidx.core.os.EnvironmentCompat; - 对于
ConnectionResult的错误,确保使用的是Google Play Services的AndroidX兼容版本,将com.google.android.gms.common.ConnectionResult替换为com.google.android.gms.common.api.ConnectionResult,同时在project.properties中指定play-services-base的具体版本(比如17.6.0),避免版本冲突:cordova.system.library.11=com.google.android.gms:play-services-base:17.6.0
完成以上步骤后,重新执行构建命令:
cordova build android
内容的提问来源于stack exchange,提问作者Dilan Fdo
相关产品推荐
相关产品推荐

