現(xiàn)在網(wǎng)上的unity-Android交互,多半在安卓工程中繼承UnityPlayerActivity來(lái)寫(xiě),這樣寫(xiě)也沒(méi)有什么問(wèn)題。絕大多數(shù)情況也適用。而且網(wǎng)上教程很多。這里不再寫(xiě)。
但是當(dāng)你用到多個(gè)Android功能的時(shí)候,比如一個(gè)是支付,一個(gè)是相冊(cè),將所有的邏輯寫(xiě)到一塊不失為一種辦法,但是這樣很不方便管理。并不是最理想的方法。
我希望的是,每一個(gè)功能一個(gè)jar。像SDK一樣。
于是我在網(wǎng)上找到了下面這篇文章。
http://blog.csdn.net/zhangdi2017/article/details/65629589
但是親身實(shí)驗(yàn)之后,發(fā)現(xiàn)他文章中有幾處模糊點(diǎn),不知道他當(dāng)是是如何讓其跑通的,或許只能算是理論上說(shuō)的通。也或許他沒(méi)有整理清楚,但就拿他這篇文章來(lái)做的話(huà),跑通的可能不大。
當(dāng)然我這篇文章完全是建立在他的基礎(chǔ)上的。所以我本人還是很感謝其提供的一種新思路。
所以,請(qǐng)先看下他的文章。(免費(fèi)廣告啊有木有)

按其所說(shuō),需要jar包和工程的名字一致,那么如果分開(kāi)有兩個(gè)插件,則兩個(gè)名字都會(huì)相同,那么在打包時(shí)就會(huì)報(bào)錯(cuò)。報(bào)爆名沖突的錯(cuò)誤。
經(jīng)過(guò)我的測(cè)試。只要你在調(diào)用時(shí)說(shuō)明包名

這個(gè)包名是可以和unity的包不一樣的。為什么很多博客上都在強(qiáng)調(diào)一樣,可能只是一樣的時(shí)候不會(huì)出錯(cuò)。但是因?yàn)槲覀冇卸鄠€(gè)包,所以一樣的話(huà)是會(huì)出錯(cuò)的,會(huì)報(bào)包名相同的錯(cuò)誤,這也逼著我嘗試不一樣的路子。首先我們分析,我們接了這么多的sdk,人家在你接入前也不知道你的包名啊。我們這種交互,也算是一個(gè)SDK了,你再封裝封裝也可以做為SDK來(lái)用啊。
所以,完全可以在不知道報(bào)名的情況下打包jar是完全可以的。好,有了分析基礎(chǔ)。那就親自試一試。duang。果然就可以了。
總結(jié):只要你再調(diào)用的時(shí)候,把你的包名類(lèi)名寫(xiě)清楚就可以。這樣就可以找的到,報(bào)名相同并不是強(qiáng)制的要求。
其次是

我親試,如果你用這個(gè)manifest的話(huà),你的應(yīng)用壓根裝不到桌面。因?yàn)閙anifest里面連啟動(dòng)頁(yè)都沒(méi)有。Android只會(huì)把其看作是一個(gè)服務(wù)。也就是說(shuō),除非你工程里有其他的manifest,系統(tǒng)會(huì)自動(dòng)將這個(gè)manifest和你其他的manifest合在一起。如果沒(méi)有,那么是肯定不行的。
那怎么辦。能不要就不要!(如果用到很多權(quán)限的話(huà)就不能不要咯。)
下面是我的分析:
unity工程在打包成Android工程的時(shí)候,還是會(huì)把工程重新按照Android的流程來(lái)走,即使你沒(méi)有用任何插件,manifest文件還是會(huì)生成的。那么為什么很多插件教程什么的都有這一步呢,因?yàn)楹芏嗖寮枰玫教厥獾臋?quán)限,比如打開(kāi)WiFi的全新啊,打開(kāi)攝像機(jī)的權(quán)限,打開(kāi)存儲(chǔ)的權(quán)限,這些默認(rèn)是沒(méi)有的,所以我們要加上,這樣他在打包的時(shí)候,將我們自己的manifest和默認(rèn)的合并,就稱(chēng)為最終的manifest。由于我們?cè)谶@里僅僅是用到這個(gè)jar包而已。所以我們完全可以不寫(xiě)manifest。親測(cè)沒(méi)有問(wèn)題。但是如果你用到很多權(quán)限的話(huà)還是要寫(xiě)的。
PS:
aar雖然現(xiàn)在很多都說(shuō)aar可以直接放入,但我親身試驗(yàn)的效果還是不太好,經(jīng)常會(huì)報(bào)一些奇怪的錯(cuò)誤,所以如果你使用aar也出錯(cuò)的時(shí)候,不妨將其解壓只要其中的jar包和manifest。
本文主要是針對(duì)借鑒文章不清楚或有些問(wèn)題的講解。當(dāng)然我不是專(zhuān)業(yè)的Android開(kāi)發(fā),所以我的一些分析可能也會(huì)有很大的問(wèn)題。如果有錯(cuò)誤,希望你可以指出來(lái)。大家互相學(xué)習(xí)。
如果你覺(jué)得還是不夠清楚的話(huà),請(qǐng)留言告訴我,我可能會(huì)出一個(gè)更加整合的教程。
再次感謝本文章引用文章的作者。