You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android对接Unity的GPS插件导入play-services AAR后编译报错

问题原因
  • Google Play Services系列库存在多级传递依赖,你单独下载的play-services-maps和play-services-locationAAR本身不包含公共基础组件。报错中提到的com.google.android.gms.common.internal.ReflectedParcelable类属于play-services-base库,这是所有play服务组件都依赖的公共基础包,你当前的依赖配置中缺少该包所以编译失败。
  • 仅导入直接依赖的AAR会持续遇到缺失类的问题,除了base包之外,后续还可能缺少play-services-basement、play-services-tasks等依赖包。
解决方案

方案1:补全所有传递依赖的本地AAR

你需要把play-services-maps:17.0.0和play-services-location:17.0.0的所有传递依赖都下载下来放到libs目录:

  • 必须补充的核心依赖包对应版本:
    • com.google.android.gms:play-services-base:17.0.0
    • com.google.android.gms:play-services-basement:17.0.0
    • com.google.android.gms:play-services-tasks:17.0.0
      若后续还有缺失类,可查询对应版本play服务组件的pom文件,获取完整的传递依赖列表逐一补全。
  • 依赖配置无需调整,直接把这些AAR放进libs目录即可,也可以把本地依赖写法简化为implementation fileTree(dir: 'libs', include: ['*.aar'])批量导入所有libs下的AAR。

方案2:修复Unity自动导入远程依赖的问题(更推荐,避免手动维护依赖)

Unity本身支持导入带依赖声明的Android库,不需要手动下载AAR,只需做如下配置即可让Unity自动拉取play服务依赖:

  1. 你的Android库模块保持用远程依赖的配置编译,编译出AAR后,保留模块下的consumer-rules.pro中所有play服务的keep规则。
  2. 在Unity项目的Assets/Plugins/Android目录下新建mainTemplate.gradle文件,在dependencies节点加入原来的远程依赖配置:
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
  1. 打开Unity的Player Settings→Android→Publishing Settings,勾选「Custom Main Gradle Template」,让Unity使用你修改的gradle模板进行构建,就会自动拉取所有依赖。

内容的提问来源于stack exchange,提问作者forstack overflowizi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:12:02