已迁移至Google Play Billing Library 3 上传AAB仍收计费版本不支持警告
可能的诱因
- 存在间接的低版本Billing依赖:自身业务模块虽然升级到了Billing Library 3+,但项目引入的第三方SDK、本地aar依赖可能内嵌了旧版AIDL代码或者2.x及更低版本的Billing Library,会被Google Play扫描识别到。
- 构建缓存残留:之前编译生成的旧版Billing相关代码没有被完全清理,打包时被合并到了最终的AAB文件中。
- 混淆配置异常:没有添加Billing Library的官方混淆豁免规则,混淆后的类特征和旧版AIDL的扫描特征匹配,导致误判。
- 构建变体配置错误:打包时误用了仍依赖旧版Billing服务的debug、测试等非发布变体。
定位问题的方法
- 检查全项目依赖树:执行Gradle命令
./gradlew app:dependencies | grep "com.android.billingclient:billing"查看所有Billing库的依赖路径,确认是否存在低于3.0的版本条目。 - 扫描AAB中的旧特征:将AAB文件后缀改为zip后解压,全局搜索旧版AIDL的专属包名
com.android.vending.billing或IInAppBillingService.aidl相关的类,如果能搜到则说明存在旧代码残留。 - 排查混淆配置:检查proguard规则文件,确认是否添加了Billing Library的保留规则,避免相关类被重命名。
- 检查全模块配置:遍历项目所有子模块、本地依赖的aar文件,确认没有引入旧版Billing相关的代码或依赖。
解决建议
- 清理构建缓存:执行
./gradlew clean命令,同时删除本地的.gradle缓存目录、各模块的build文件夹后重新打包。 - 统一Billing版本:如果依赖树中存在低版本的传递依赖,在对应第三方SDK的依赖配置中添加排除规则
exclude group: 'com.android.billingclient', module: 'billing',强制全项目使用3.0及以上版本的Billing Library。 - 补全混淆规则:在proguard-rules.pro中添加官方要求的Billing库豁免规则:
-keep class com.android.billingclient.** { *; } -keep interface com.android.billingclient.** { *; }
- 人工复核:确认所有旧代码已完全清理后仍触发警告的,可以向Google Play开发者控制台提交工单,上传依赖树、AAB扫描结果申请人工审核。
内容的提问来源于stack exchange,提问作者kimrandomwork
相关产品推荐
相关产品推荐

