Unity接入华为SDK

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linxinfa/article/details/88953267

1 sdk下载

华为SDK下载:https://developer.huawei.com/consumer/cn/service/hms/catalog/HuaweiJointOperation.html?page=hmssdk_jointOper_sdkdownload

下载HMSAgent_2.6.3.301.zip
在这里插入图片描述
我用的是Eclipse工程,所以下载hmssdk-eclipse-2.6.3.301.zip
在这里插入图片描述

2 生成jar

解压上面的两个zip,进入HMSAgent_2.6.3.301目录
在这里插入图片描述
看到文档里说要执行Buildcopysrc2jar.bat来生成jar,但是过程中一堆问题,放弃治疗,自己写python脚本生成jar
新建目录: copysrclibs
在这里插入图片描述
然后把hmsagents/src/main中的文件复制到copysrc
在这里插入图片描述
在这里插入图片描述
接着把hmssdk-eclipse-2.6.3.301中各个模块的libs中的jar拷贝到上面的新建的libs目录中
在这里插入图片描述
接下来编写python脚本: build_jar.py (用的是python2的语法)

# -*- encoding:utf-8 -*-
import os
import subprocess
import shutil

#注意这里要根据你的android.jar的目录来设置
android_jar_path=r"D:\Android_6.0_sdk\Android_6.0_sdk\platforms\android-23\android.jar"

java_dir="copysrc/java"
lib_dir="libs"
out_jar_name ="hwsdk.jar"

######################################################

# 拼接java文件
def ls_java_file(dir_path):
    for r, _, fls in os.walk(dir_path):
        for f in fls:
            if f.endswith(".java"):
                yield os.path.join(r, f)

# 拼接jar文件
def ls_jar_file(dir_path):
    for r, _, fls in os.walk(dir_path):
        for f in fls:
            if f.endswith(".jar"):
                yield os.path.join(r, f)

def build_cmd(android_jar_path, java_dir, lib_dir, out_jar_name):
    args = "javac -encoding utf-8 -bootclasspath".split()
    args.append(android_jar_path)

    args.append("-cp")
    args.append(";".join([ a for a in ls_jar_file(lib_dir)]) )

    args.append(u"-d")
    args.append(u"bin")
    for jf in ls_java_file(java_dir):
        args.append(jf)
    print args
    p = subprocess.Popen(args, stdin=subprocess.PIPE,stderr=subprocess.PIPE)
    p.wait()
    
    print p.stderr.read()
    
    args=["jar","cvf", out_jar_name, "bin"]
    p = subprocess.Popen(args, stdin=subprocess.PIPE,stderr=subprocess.PIPE)
    p.wait()

    print p.stderr.read()
    print

def make_bin_dir():
    if os.path.exists("bin"):
        shutil.rmtree("bin")
    os.mkdir("bin")



if '__main__' == __name__:
    make_bin_dir()
    build_cmd(android_jar_path, java_dir, lib_dir,out_jar_name)



把 build_jar.py 放到HMSAgent_2.6.3.301目录中,注意脚本中的android_jar_path的值的设置
在这里插入图片描述
运行build_jar.py,即会生成一个bin目录和一个hwsdk.jar,bin目录中就是生成的.class文件,我们只需要最终的hwsdk.jar
在这里插入图片描述

3 将sdk导入工程

把hwsdk.jar和各个模块的jar都导入到Unity工程的Plugins/Android/libs中
在这里插入图片描述

4 写java中间件,封装sdk接口,供Unity的C#调用

(未完待续)

猜你喜欢

转载自blog.csdn.net/linxinfa/article/details/88953267