【Unity】安卓项目使用带有资源Jar包SDK的打包方法

时间:2022-05-18 12:34:48

事情的起因是最近在做一个项目,使用了新浪微博的SDK,本来以为无非就是引用SDK的Jar库

并创建一个接口供Unity调用就好了。

没想到Android接口插件和Unity项目准备就绪打包的时候出了问题

问题表现很简单,一调用授权界面,程序直接FC

于是乎打开log开始找原因

最初令我注意的是有指向空的对象被使用

于是翻看代码

找来找去也没能找到任何错误

因为代码是从之前写好的Demo工程里移植过来的

而这个Demo工程是一个标准Android应用程序

看起来不应该有问题

后来一次偶然才在log中发现关键几句话

新浪的SDK加载资源时找不到资源

于是仔细对比标准Android应用程序和Unity打包的程序的区别

发现Unity中不包括一个带有drawable资源的assets文件夹

和一个证书文件

于是将资源文件引入Unity的插件目录

资源被成功导入

问题得到解决。可是事情到这里远远没有结束

因为仔细对比后发现Unity仍然没有将证书文件打包到工程中去

虽然使用aapt工具可以导入文件但并不是最终解决办法

看起来还要从根本上来解决Unity的打包问题

于是想到去官网提问

官网给出的答复是,Unity不会 对Android 插件进行编译。

所以想使用带资源的插件时必须 导入到Unity的是预编译版本

具体可以使用Android Library项目,编译后将目录拷贝入Unity

由于我没有Eclipse而Android Studio中选择Android library并没有生成所谓的预编译文件夹

其中官方回复如下:

Unity does not compile your Java code, it expects you to give it a pre-compiled version of your project.

For Android, you can use the "Android Library" project type (if you work in Eclipse, you can set it in the project's properties).

After letting Eclipse compile your project, you can copy that folder over to Unity (to a subfolder under Plugins/Android), Unity will then pick up all that is needed from your project.


于是作罢。

想到的最终解决方案是。

Unity导出工程,使用Android开发工具打包

具体流程如下:

1.清除掉关于Android插件部分 即只保留纯净Unity项目部分

2.Build当前项目

3.从当前项目目录中找到Temp文件夹,并拷贝出其中的StagingArea文件夹(特别注意:关闭项目后会自动清空Temp文件夹)

4.将StagingArea导入到Eclipse或者Android Studio。并不需要像别的教程那样作为Android library。普通工程就好

5.新建Src文件夹作为源代码文件夹,并将之前的插件部分代码拷入,将Sdk的jar包放入Libs文件夹,此过程与一般Android项目开发步骤相同

6.编译并签名即可

7.此时所有资源完美打包完毕