迁移至Google Play Billing Library 6+报错,Unity开发者求解决方案
Google Play Billing报错排查方案(Unity IAP 4.12.2 + Billing Client 6.2.1)
清理并重建依赖
- 执行
Assets > External Dependency Manager > Android Resolver > Delete Resolved Libraries删除已解析的依赖文件 - 再运行
Assets > External Dependency Manager > Android Resolver > Resolve重新拉取依赖 - 检查
Plugins/Android目录,删除重复的billing-*.aar旧版本文件
- 执行
验证Manifest配置
- 确认
AndroidManifest.xml中包含Billing权限:<uses-permission android:name="com.android.vending.BILLING" /> - 排查第三方SDK是否自带旧版Billing相关配置,移除重复的provider或权限声明
- 确认
检查构建与Gradle配置
- 在Unity
Player Settings > Publishing Settings中勾选Custom Main Gradle Template和Custom Base Gradle Template - 打开
mainTemplate.gradle,确保dependencies中仅存在com.android.billingclient:billing:6.2.1,无其他版本的Billing依赖 - 若启用ProGuard/R8,添加必要的混淆规则:
-keep class com.android.billingclient.** { *; } -keep class com.android.vending.billing.** { *; }
- 在Unity
校验依赖树一致性
- 导出Android项目,在根目录执行
./gradlew app:dependencies查看依赖树 - 若存在其他模块引入旧版Billing,在gradle中强制统一版本:
configurations.all { resolutionStrategy.force 'com.android.billingclient:billing:6.2.1' }
- 导出Android项目,在根目录执行
核对Google Play Console配置
- 确认应用内商品状态为
活跃且已发布 - 测试设备的Google账号已加入
许可测试列表,避免未授权导致的报错
- 确认应用内商品状态为
开启日志定位具体问题
- 初始化IAP时传入
true启用调试日志:UnityPurchasing.Initialize(..., true) - 通过
adb logcat -s UnityIAP BillingClient过滤日志,获取具体报错信息(如签名错误、商品ID不匹配等)
- 初始化IAP时传入
内容的提问来源于stack exchange,提问作者Ajith kumar
相关产品推荐
相关产品推荐

