uniapp 集成安卓原生SDK

uniapp yekong

uniapp外包项目开发要求集成安卓原生SDK插件,对原生安卓一窍不通的自己,实在是学不动了,于是想着去某宝或者某鱼找个外援,但是对方的报价感人,让自己瞬间又有了学习的动力。

需求

集成快手sdk,用来监听在快手上推广app的效果。

开发文档

uniapp 官方关于安卓插件的开发文档说明,所需要的实例以及离线sdk都可以在这个文档里看到和下载。
开发文档

开发工具

Android Studio HBuilderX
Android Studio 下载地址
离线sdk

申请Appkey

本地调试需要申请appkey

申请地址

申请地址
进入到我的应用,找到我们要本地调试的app
找到我们要本地调试的app

进入到应用详情,找到离线打包key管理
找到离线打包key管理

输入包名Android 证书签名SHA1 和iOS BundleId
输入包名Android 证书签名SHA1 和iOS BundleId

保存后就会生成我们需要的appkey
wanjunshijiecom20221025WU2FVE

实例文件修改

将下载的实例文件中的UniPlugin-Hello-AS中的旧appId替换成我们要调试的新appId,全局查找替换外加对应的目录名修改
wanjunshijiecom202210258Qu28Z
找到AndroidManifest.xml,将里面的appkey改为我们上面申请新的appkey
找到AndroidManifest.xml,将里面的appkey改为我们上面申请新的appkey

学习视频

在对安卓不熟悉的情况下,先跟着b站教程走一遍流程大概熟悉一下文件的情况,更容易往下操作
学习视频

加入文件包

这里需要集成的sdk是monitorsdk-1.0.10.aar,将文件放到libs目录下
monitorsdk-1.0.10.aar

引入

as 切换到Android下,选择uniplugin_module,这里使用的是自带的演示目录文件下直接修改uniplugin_module 引入monitorsdk-1.0.10.aar
选择uniplugin_module
引入monitorsdk-1.0.10.aar
引入后,顶部会出现一个sync Now点一下
顶部会出现一个sync Now点一下

替换证书

将默认版本的证书替换成自己的app证书,以便于sdk调试
替换证书
证书信息修改,修改为我们自己的证书信息
证书信息修改

生成本地资源包

生成本地资源包
将资源包覆盖一下旧资源包,注意资源包名称要和自己的app名称一致
将资源包覆盖一下旧资源包

常见问题

项目配置都正确怎么还是提示"未配置AppKey或配置错误"?
常见问题

初始化我们的sdk

package io.dcloud.uniplugin;

import android.app.Activity;

import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.common.UniModule;
import com.kwai.monitor.log.TurboAgent;
import com.kwai.monitor.log.TurboConfig;

public class TestModule extends UniModule {

    @UniJSMethod (uiThread = true)
    public void init(String appId,String appName){
        if(mUniSDKInstance != null && mUniSDKInstance.getContext() instanceof Activity) {
            TurboAgent.init(TurboConfig.TurboConfigBuilder.create(mUniSDKInstance.getContext())
                    .setAppId(appId) //请填写平台申请的appId
                    .setAppName(appName) //请填写申请Appid时填写的appName
                    .setEnableDebug(true)
                    .build());
            TurboAgent.onAppActive();
            TurboAgent.onRegister();
        }
    }
}

在uniapp引用并初始化

var testModule = uni.requireNativePlugin("TestModule")
// 快手sdk初始化
kuaishouSdkInit() {
	console.log('初始化')
	testModule.init("****", "****")
},

编译sdk

编译我们写的代码
编译我们写的代码

wanjunshijiecom202210268oLaN1
找到我们编译好的文件

uniapp文件中创建目录

将编译好的文件以及sdk文件按照下面的目录放好,细节再上面推荐的视频结尾有详细的操作流程
wanjunshijiecom202210266uFV05

配置好插件参数

{
	"name": "快手monitorsdk-1.0.10 sdk集成",
	"id": "uniplugin_module",
	"version": "1.0.0",
	"description": "快手monitorsdk",
	"_dp_type": "nativeplugin",
	"_dp_nativeplugin": {
		"android": {
			"plugins": [{
				"type": "module",
				"name": "TestModule",
				"class": "io.dcloud.uniplugin.TestModule"
			}],
			"integrateType": "aar",
			"minSdkVersion": "21"
		}
	}
}

在插件原生插件配置中,选择本地插件,找到我们的插件,勾选。
wanjunshijiecom20221026qOrlwc

打包基座调试

与后台进行联调测试。
打包基座调试

喜欢