uni-app magicos获取oaid失败 使用荣耀官方sdk获取oaid自定义调试基座制作又报错

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

uni-app magicos获取oaid失败 使用荣耀官方sdk获取oaid自定义调试基座制作又报错

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

产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:Windows 11 专业版 版本号 23H2 安装日期 ‎2024/‎4/‎16 操作系统版本 22631.4169 体验 Windows Feature Experience Pack 1000.22700.1034.0

HBuilderX类型:正式

HBuilderX版本号:4.24

手机系统:Android

手机系统版本号:Android 14

手机厂商:华为

手机机型:荣耀magic3

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

操作步骤: 参考华为 荣耀官方获取oaid方法: https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides/identifier-service-version-change-history-0000001050066927 https://developer.hihonor.com/cn/kitdoc?kitId=11030&navigation=guides&docId=intergrate.md

模块build中添加

api "com.huawei.hms:ads-identifier:3.4.62.300"
api 'com.hihonor.mcs:ads-identifier:1.0.2.301'

工程build中添加

maven { url 'https://developer.huawei.com/repo' }
maven { url 'https://developer.hihonor.com/repo' }

3 回复

我也遇到了类似的错误, 有解决办法吗?
Caused by: org.gradle.api.GradleException: File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Location: [PackagePath]/app/src/release/google-services.json [PackagePath]/app/src/google-services.json [PackagePath]/app/src/Release/google-services.json [PackagePath]/app/google-services.json
at com.google.gms.googleservices.GoogleServicesTask.action(GoogleServicesTask.java:119) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:236) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:221)


没有,官方根本不理会,不过你可以试试离线打包,就是稍微麻烦点

在处理 uni-app 中通过 magicos 获取 OAID(Open Anonymous Device Identifier)失败的问题时,首先需要确保你的环境配置正确,并且使用的 SDK 版本与你的开发环境兼容。如果直接使用荣耀官方 SDK 获取 OAID 并在自定义调试基座制作过程中遇到报错,可以尝试以下步骤来集成和调试。

1. 集成荣耀官方 SDK

首先,确保你已经从荣耀开发者官网下载并集成了最新的 SDK。以下是一个基本的集成示例,假设你已经有了一个 uni-app 项目:

manifest.json 中配置权限

"mp-weixin": { // 根据你的平台调整
    "appid": "your-app-id",
    "permission": {
        "scope.userInfo": {
            "desc": "你的用户信息权限描述"
        },
        // 其他必要的权限
    }
}

引入荣耀 SDK

将荣耀 SDK 的 .aar 文件或 .jar 文件放入你的 libs 文件夹(如果使用的是原生插件方式),并在 build.gradle 中添加依赖:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.aar'])
    // 其他依赖
}

调用获取 OAID 的方法

uni-app 中,你可能需要通过原生插件或 JSBridge 来调用荣耀 SDK 的方法。以下是一个简化的示例,展示如何在原生代码中调用获取 OAID 的接口:

// 假设这是你的原生插件代码
public class OaidPlugin implements IModule {
    @JSMethod(uiThread = false)
    public void getOaid(JSCallback callback) {
        // 调用荣耀 SDK 获取 OAID 的方法
        OaidManager.getInstance().getOaid(new OaidListener() {
            @Override
            public void onSuccess(String oaid) {
                callback.invoke(oaid);
            }

            @Override
            public void onError(int errorCode, String errorMessage) {
                callback.invokeAndKeepAlive(new JSONObject().put("error", errorMessage));
            }
        });
    }
}

2. 自定义调试基座制作报错处理

如果在制作自定义调试基座时遇到报错,检查以下几点:

  • 确保你的开发环境(如 HBuilderX)是最新版本。
  • 检查 manifest.json 和其他配置文件的格式是否正确。
  • 查看控制台或日志输出,找到具体的错误信息,并根据错误信息调整代码或配置。
  • 如果报错与签名相关,确保你的签名证书正确无误,并且与荣耀开发者平台上的配置一致。

由于具体的报错信息未提供,以上步骤是基于常见问题的通用解决方案。如果问题依旧存在,建议详细查看荣耀开发者文档或联系荣耀技术支持获取更具体的帮助。

回到顶部