Anroid与Unity交互(SDK的接入的一些问题)

AndroidStudio在这里简称AS,最近用AS接SDK发现一堆问题,现在有空就记录一下解决的过程,首先需要安装AS,然后配置一下SDK的路径,还需要安装好JDK,这里就不讲述了,开发环境配置好以后就可以开始搞事情了,首先建立一个项目工程然后在这个工程下建立一个Anroid Library这个需要打包成jar或者aar的(看大家的需求),snowfish_sdk就是要打包的模块,先创建一个MainActivity这个类需要继承UnityPlayerActivity(需要先把unity的一个Release目录下的一个classes.jar放到这个库的libs文件夹下),然后到Project Structure窗口下去添加依赖项,具体操作,如下图:

全部搞定以后,在MainAcity写上调用SDK的函数或者Anroid原生态的函数(以便在Unity中调用),这个具体看具体需求吧,接下来要打包成jar,但是这里出现了小小的问题,就是网上那些路径竟然在项目中都没有找到,把项目切换成Project模式,找了一边又一边都没有发现,网上说的有如下2个路径,可是在项目中一个都没有,估计是AS的版本比较高导致,路径有变化了。

1.build/intermediates/bundles/release/
2.build/intermediates/classes/release/

这个时候猜了一下,最后选择了packaged-classes这个路径,准备尝试一下,打包的命令需要写在这个模块的build.gradle下的

android{}标签里,如下图:

全部搞定以后,要开始打包了,打包有2中方式,随便选一个就可以了(第一种打包模式选择other之后找到makejar点击一下就可以了,第二种需要在根目录下才能执行gradlew makeJar,不要cd到模块目录下,切记!!!,第一次打包速度都会比较慢,需要下载一些资源),如下图所示:

完成以后可以在输出目录找到jar的包即可,因为在接SDK的时候还遇到一些问题,这里还阐述一下jar与aar包的区别。把jar包放到Unity的Plugins/Android/bin目录下以后,准备打包测试一下,把apk安装以后发现运行异常,幸好有一个插件是可以在手机上查看打印的(插件叫Logs Viewer,如果有兴趣自行百度),打印结果说什么找不到资源ID,一脸懵圈,我明明在AS把那个SDK的libs和res文件夹导入进去了,为什么会找不到资源ID呢,于是准备打开这个jar查看一下详细情况(通过肉眼目测这个jar包小的有点过分了,这个sdk图片就挺多的,为什么包如此小,任何压缩算法也不会如此厉害吧),于是我把jar的后缀改成zip的后缀,进去一探究竟,看到的结果如下图所示:

com.xxx.xxx点到这个文件夹才发现了一些java的二进制的文件,我的res和libs下的东西怎么不见了,科普了一下才发现arr是会全部打包的,而jar不会打包那些关联的文件(res和libs下的东西都不会打包进来)。这样也行,大不了就用aar嘛,于是又打包了一边aar,好奇之下还是去看了一下这个包里面的东西(这个东西确实大了很多),根目录就有很多东西了,如下图所示:

发现aar是一股脑的全部打进去的,这样挺好的主意已定,就准备用这个aar了,然后打包的时候又发现了问题,这么就如此悲惨呢,看了一下发现错误是classes.jar已经存在了,之前在AS里面导入过这个jar,有这个错误必然的。然后思考了一下就算可以在改成zip的情况下把classes.jar删掉,但是安卓的配置文件还是会撞的,以后接的SDK如果多了,都打成aar包,如此多的AndroidManifest.xml,不知道Unity会不会去整合这些AndroidManifest.xml(尝试了一下,发现果真不行。。),这样只能用jar包了,问题是res文件和libs的文件怎么办呢,直接把这2个文件拖到Unity的Plugins/Android下,然后把AndroidManifest.xml也拖到这个文件夹下(以后有其他SDK去拓展这个文件就可以了),如图Unity的Plugins如下图:

最后再次尝试打包和运行,终于成功了。希望这篇文章对那些尝试用AS接SDK的同学有所帮助吧!!!,同时也记录一下(以免自己以后忘记了)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值