uni-app 应用目前所用的 Play 结算库版本是 AIDL 需更新到 6.0.1 或更高版本以使用 Google Play 最新创收功能

发布于 1周前 作者 htzhanglong 来自 Uni-App

uni-app 应用目前所用的 Play 结算库版本是 AIDL 需更新到 6.0.1 或更高版本以使用 Google Play 最新创收功能

开发环境 版本号 项目创建方式
Windows 11 HBuilderX

操作步骤:

  • 开启 google pay,云端打包,上传aab至google play报错:您的应用目前所用的 Play 结算库版本是 AIDL,必须更新到版本 6.0.1 或更高版本才能使用 Google Play 上的最新创收功能

预期结果:

  • 正常使用google pay

实际结果:

  • 您的应用目前所用的 Play 结算库版本是 AIDL,必须更新到版本 6.0.1 或更高版本才能使用 Google Play 上的最新创收功能

bug描述:

  • 开启 google pay,云端打包,上传aab至google play报错:您的应用目前所用的 Play 结算库版本是 AIDL,必须更新到版本 6.0.1 或更高版本才能使用 Google Play 上的最新创收功能

4 回复

谷歌支付使用的是
com.google.android.gms:play-services-wallet:18.1.3


回复 9***@qq.com: 依赖库版本号

针对您提到的需要将 uni-app 应用中的 Play 结算库版本从 AIDL 更新到 6.0.1 或更高版本以使用 Google Play 最新创收功能的需求,这里提供一个大致的代码升级和集成流程。由于 uni-app 本身是一个使用 Vue.js 开发所有前端应用的框架,它通过编译可以发布到 iOS、Android、H5、以及各种小程序等多个平台,因此集成 Google Play Billing Library 通常需要在原生 Android 代码层面进行。

步骤概述

  1. 更新 Gradle 配置

platforms/android/ 目录下的 build.gradle 文件中,确保你的项目使用最新的 Google Play 服务库版本。例如:

dependencies {
    implementation 'com.android.billingclient:billing:6.0.1'
}
  1. 同步原生 Android 代码

由于 uni-app 支持通过 native 插件或自定义原生模块扩展功能,你可能需要创建一个自定义的原生模块来封装 Google Play Billing Library 的功能。以下是一个简化的原生模块示例:

创建 BillingManager.java

package com.example.uniappplugin;

import android.content.Context;
import androidx.annotation.NonNull;
import com.android.billingclient.api.*;

public class BillingManager implements PurchasesUpdatedListener {
    private BillingClient billingClient;

    public BillingManager(Context context) {
        billingClient = BillingClient.newBuilder(context).setListener(this).build();
        billingClient.startConnection(new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
                // Handle setup result
            }

            @Override
            public void onBillingServiceDisconnected() {
                // Handle disconnection
            }
        });
    }

    @Override
    public void onPurchasesUpdated(@NonNull BillingResult billingResult, @NonNull List<Purchase> purchases) {
        // Handle purchase updates
    }

    // Add methods to query purchases, initiate purchases, etc.
}
  1. 在 uni-app 中调用原生模块

在 uni-app 中,你可以通过 JSBridge 调用这个原生模块。首先,你需要在 manifest.json 中声明原生插件,然后在你的 Vue 组件中使用 plus.android.importClass 来访问这个类,并调用其方法。

注意:由于篇幅限制,这里只提供了基本的框架和思路。实际实现中,你需要处理更多的细节,比如错误处理、异步回调、用户界面的更新等。

结论

更新 Google Play Billing Library 是一个涉及原生 Android 开发的任务,在 uni-app 中通常通过创建原生插件或模块来实现。上述代码提供了一个起点,但具体的实现细节将根据你的应用需求而有所不同。务必参考 Google Play Billing Library 的官方文档,以确保正确实现所有必要的功能。

回到顶部