现在网上的unity-Android交互,多半在安卓工程中继承UnityPlayerActivity来写,这样写也没有什么问题。绝大多数情况也适用。而且网上教程很多。这里不再写。
但是当你用到多个Android功能的时候,比如一个是支付,一个是相册,将所有的逻辑写到一块不失为一种办法,但是这样很不方便管理。并不是最理想的方法。
我希望的是,每一个功能一个jar。像SDK一样。
于是我在网上找到了下面这篇文章。
http://blog.csdn.net/zhangdi2017/article/details/65629589
但是亲身实验之后,发现他文章中有几处模糊点,不知道他当是是如何让其跑通的,或许只能算是理论上说的通。也或许他没有整理清楚,但就拿他这篇文章来做的话,跑通的可能不大。
当然我这篇文章完全是建立在他的基础上的。所以我本人还是很感谢其提供的一种新思路。
所以,请先看下他的文章。(免费广告啊有木有)
按其所说,需要jar包和工程的名字一致,那么如果分开有两个插件,则两个名字都会相同,那么在打包时就会报错。报爆名冲突的错误。
经过我的测试。只要你在调用时说明包名
这个包名是可以和unity的包不一样的。为什么很多博客上都在强调一样,可能只是一样的时候不会出错。但是因为我们有多个包,所以一样的话是会出错的,会报包名相同的错误,这也逼着我尝试不一样的路子。首先我们分析,我们接了这么多的sdk,人家在你接入前也不知道你的包名啊。我们这种交互,也算是一个SDK了,你再封装封装也可以做为SDK来用啊。
所以,完全可以在不知道报名的情况下打包jar是完全可以的。好,有了分析基础。那就亲自试一试。duang。果然就可以了。
总结:只要你再调用的时候,把你的包名类名写清楚就可以。这样就可以找的到,报名相同并不是强制的要求。
其次是
我亲试,如果你用这个manifest的话,你的应用压根装不到桌面。因为manifest里面连启动页都没有。Android只会把其看作是一个服务。也就是说,除非你工程里有其他的manifest,系统会自动将这个manifest和你其他的manifest合在一起。如果没有,那么是肯定不行的。
那怎么办。能不要就不要!(如果用到很多权限的话就不能不要咯。)
下面是我的分析:
unity工程在打包成Android工程的时候,还是会把工程重新按照Android的流程来走,即使你没有用任何插件,manifest文件还是会生成的。那么为什么很多插件教程什么的都有这一步呢,因为很多插件需要用到特殊的权限,比如打开WiFi的全新啊,打开摄像机的权限,打开存储的权限,这些默认是没有的,所以我们要加上,这样他在打包的时候,将我们自己的manifest和默认的合并,就称为最终的manifest。由于我们在这里仅仅是用到这个jar包而已。所以我们完全可以不写manifest。亲测没有问题。但是如果你用到很多权限的话还是要写的。
PS:
aar虽然现在很多都说aar可以直接放入,但我亲身试验的效果还是不太好,经常会报一些奇怪的错误,所以如果你使用aar也出错的时候,不妨将其解压只要其中的jar包和manifest。
本文主要是针对借鉴文章不清楚或有些问题的讲解。当然我不是专业的Android开发,所以我的一些分析可能也会有很大的问题。如果有错误,希望你可以指出来。大家互相学习。
如果你觉得还是不够清楚的话,请留言告诉我,我可能会出一个更加整合的教程。
再次感谢本文章引用文章的作者。