Unity中Google Play插件运行时出现androidx类缺失错误求助
解决Unity中Google Play App Update功能的
ActivityResultLauncher类找不到问题 问题背景
原本正常使用Google Play插件的app-review和app-update功能,删除部分插件后出现运行时错误:
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/activity/result/ActivityResultLauncher
奇怪的是app-review功能仍可正常使用,但appUpdateManager.GetAppUpdateInfo()完全失效。项目编译、编辑器内强制解析均成功,尝试过重装SDK/JDK、全量重装Google Play插件(含最新版+重建Library)、升级Unity至2023.01.01f1、切换为Unity默认SDK/JDK/NDK/Gradle、清理用户目录下.gradle缓存并重建等操作,均未解决问题。目前Firebase(远程配置、数据库、分析)、Google Play自动登录等功能运行正常。
解决方案
1. 补全AndroidX Activity Result相关依赖
这个错误本质是项目缺少AndroidX Activity组件的核心依赖,app-review功能未触发该依赖的调用所以能正常运行,但app-update的初始化流程需要用到ActivityResultLauncher。
- 打开Unity编辑器的
Player Settings > Publishing Settings > Build,勾选Custom Main Gradle Template和Custom Base Gradle Template; - 打开
Assets/Plugins/Android/mainTemplate.gradle文件,在dependencies代码块中添加:implementation 'androidx.activity:activity-ktx:1.8.0' implementation 'androidx.fragment:fragment-ktx:1.6.1' - 保存后重新构建APK/AB包,运行验证。
2. 强制校验并修复依赖链
- 通过Unity菜单
Assets > External Dependency Manager > Android Resolver > Force Resolve再次强制解析依赖; - 解析完成后,前往
Library/Bee/Android/Prj/IL2CPP/Gradle/launcher/build.gradle文件,检查是否包含上述添加的AndroidX依赖。如果仍未自动引入,说明依赖被其他插件拦截,需要手动在mainTemplate.gradle中锁定依赖版本。
3. 确保AndroidX兼容配置正确
- 进入
Player Settings > Other Settings > Configuration:- 勾选
Enable Jetifier; - 将
AndroidX Compatible设置为Required;
这两个配置会确保项目中所有旧版Support库被自动迁移到AndroidX,避免依赖冲突。
- 勾选
4. 清理插件残留文件
- 彻底删除之前移除插件的残留文件:包括
Assets/Plugins/Android下的废弃jar/aar文件、Packages/manifest.json中无效的包引用; - 重新导入最新版的Google Play App Update插件,确保导入过程无报错。
5. 排查Gradle依赖冲突
- 在Unity的
Preferences > External Tools > Gradle中,添加启动参数--info,开启详细构建日志; - 重新构建项目后,在日志中搜索
activity-ktx,查看是否存在依赖被exclude的规则,如果有,在mainTemplate.gradle中添加force = true强制引入该依赖:implementation('androidx.activity:activity-ktx:1.8.0') { force = true }
内容的提问来源于stack exchange,提问作者Dod Mason
相关产品推荐
相关产品推荐

