1戴卜、大部分SDK的方法需要在線程中執(zhí)行,一般會(huì)放在主線程里執(zhí)行琢岩,安卓中主線程一般用于UI渲染投剥。
this.runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
2、當(dāng)有多個(gè)SDK都需要在MainActivity里處理的時(shí)候担孔,可以讓一個(gè)Activity繼承另一個(gè)Activity江锨。
3、第三方j(luò)ar包里可能會(huì)有assets文件夾并且?guī)в匈Y源糕篇,這時(shí)候需要我們自己把jar包里的資源解壓出來放入工程里的assets文件夾下泳桦,Unity在處理jar包的時(shí)候不會(huì)處理資源,只會(huì)處理.class文件娩缰。
4、接銀聯(lián)支付的SDK在assets文件夾下有data.bin文件一定要放入U(xiǎn)nity工程里谒府,否則會(huì)打不開銀聯(lián)充值拼坎。
5、安卓SDK主線程被阻塞的時(shí)候是沒有辦法和Unity通信的(順網(wǎng)的SDK遇到過)完疫。
6泰鸡、不要過于相信SDK官方給的文檔,最好直接看他們給的源碼壳鹤,也不要過于相信SDK渠道的源碼盛龄,必要的時(shí)候jar包解開看看。
7芳誓、有需要把另外一個(gè)工程添加為引用的時(shí)候余舶,可以直接把被引用工程里的資源拷貝到當(dāng)前工程對應(yīng)的文件夾下,效果一樣的锹淌,開發(fā)的時(shí)候也會(huì)更方便匿值。
8、
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
C:/Program Files/Java/jdk1.8.0_91\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="D:/AndroidSDK/sdk\tools" -Dfile.encoding=UTF8 -jar "C:/Program Files (x86)/Unity4.7.2/Editor/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" -
遇到這種錯(cuò)誤赂摆,一般都是有引用的jar包內(nèi)容重復(fù)挟憔,仔細(xì)檢查jar包。
9烟号、Unity在5.0以后的版本里接安卓的SDK時(shí)绊谭,libs文件夾下針對相同的CPU架構(gòu)的.so文件只需要一份就可以了,否則就會(huì)報(bào)如8所示的錯(cuò)誤汪拥。一般情況下只保留(armeabi达传、armeabi-v7a、x86)文件夾即可。我測試的版本是Unity5.5.2(Coolpad的SDK).
Unity5.0之前的版本不受影響趟大,我測試的是Unity4.6鹤树。如果有的SDK只有一個(gè)CPU架構(gòu)的文件夾,可以根據(jù)自己項(xiàng)目需要自己添加對應(yīng)的文件夾(VivoSDK2.2.1下如果不安裝插件逊朽,官方只給了一個(gè)armeabi文件夾罕伯,游戲啟動(dòng)時(shí)會(huì)報(bào)錯(cuò))
Android jniLibs下目錄詳解
10、有的渠道SDK文檔里會(huì)貼心的讓你使用 jar cvf main.jar *
這的命令打jar包叽讳,如果已經(jīng)有了這個(gè)jar包放到Unity工程里就不需要在工程里手動(dòng)導(dǎo)出的jar包放到Unity里了追他,實(shí)際上兩種操作的結(jié)果是一樣的,只是方式不同岛蚤。如果都放進(jìn)去就會(huì)出現(xiàn)8所示的錯(cuò)誤邑狸。兩只只留其一,我在Oppo的SDK里見過涤妒。
11单雾、有些渠道SDK需要在Application里面調(diào)用,在Java工程里自己手動(dòng)添加Application以后記得要在AndroidMenifest.xml上注冊
<application android:allowBackup="true" android:hardwareAccelerated="true" android:name="包名.YourApplicationName" android:label="@string/app_name">
否則應(yīng)用啟動(dòng)時(shí)不會(huì)調(diào)用該Application(靠譜助手和VivoSDK里遇到過)她紫。
12硅堆、編寫Jar包時(shí)如果在Eclipse引用到安卓工程內(nèi)res文件夾下的內(nèi)容,導(dǎo)出jar包時(shí)需要?jiǎng)h除R.java相關(guān)文件贿讹。
因?yàn)閖ar包內(nèi)不能保護(hù)res文件渐逃,res文件需要我們手動(dòng)放入U(xiǎn)nity的Plugins文件夾下,Unity會(huì)在編譯時(shí)重新生成R.java相關(guān)文件民褂,有可能導(dǎo)致的問題時(shí)兩個(gè)R文件內(nèi)生成的res的ID值不相同茄菊,在游戲中報(bào)錯(cuò)
Caused by: android.content.res.Resources$NotFoundException: String resource ID
如果有必要需要把兩邊的包名改成相同的。
-------------------持續(xù)更新-------------------