升级Gradle 4.1后出现“未解析父类型”错误求助
解决Gradle 4.1升级后Google Maps类父类型未解析的问题
嘿,我之前升级Gradle到4.1的时候也碰到过一模一样的问题!这事儿大概率是Google Play Services的依赖版本不兼容或者内部包结构变更搞出来的,给你几个靠谱的解决办法:
1. 统一Google Play Services依赖版本
首先要确保项目里所有和Google Play Services相关的依赖(尤其是play-services-maps)用的是同一个稳定版本,版本乱套很容易出这种父类找不到的问题。打开模块级的build.gradle文件,修改依赖如下:
dependencies { // 替换成适配Gradle 4.1的稳定版本,比如17.0.0(亲测可用) implementation 'com.google.android.gms:play-services-maps:17.0.0' // 如果还有其他play-services相关依赖(比如location、auth),务必保持版本一致 implementation 'com.google.android.gms:play-services-location:17.0.0' }
2. 清理缓存并重新构建
Gradle升级后旧缓存很容易捣乱,按下面的步骤操作:
- 打开Android Studio,点击顶部工具栏的
Build > Clean Project - 接着点击
Build > Rebuild Project - 嫌麻烦的话也直接在终端敲命令:
./gradlew clean build
3. 检查AndroidX相关配置(旧项目注意)
Gradle 4.1对应的Android Gradle Plugin版本还没强制要求AndroidX,如果你的项目是还没迁移的旧项目,一定要检查gradle.properties里有没有误开启AndroidX配置:
# 如果没迁移到AndroidX,确保这两行是注释或者设为false # android.useAndroidX=true # android.enableJetifier=true
为啥会出这个问题?
com.google.android.gms.common.internal.safeparcel.zza是Google Play Services内部用来实现Parcelable的基类,在某些版本更新中,这个类的包结构或者访问权限发生了变动。Gradle升级后,依赖解析的规则可能会自动拉取更高版本的依赖,导致和你之前用的Maps依赖版本不匹配,自然就找不到父类了。
内容的提问来源于stack exchange,提问作者SomethingsGottaGive
相关产品推荐
相关产品推荐

