Unity3D接入移动MM支付SDK(强联网)的问题
因為移動MM支付的SDK只提供android版本的,要自己寫過一個android項目再打包重新生成一個jar來供Unity3d引擎使用,這一部分我就不寫了,網上也提供很多的教程,主要是已經成功調用之后,會發生以下的錯誤:
1.failed to find resource file(mmiap.xml}
06-28 05:14:09.746: E/d(4709): failed to find resource file(mmiap.xml}06-28 05:14:09.776: D/AndroidRuntime(4709): Shutting down VM
06-28 05:14:09.776: W/dalvikvm(4709): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-28 05:14:09.786: E/AndroidRuntime(4709): FATAL EXCEPTION: main
06-28 05:14:09.786: E/AndroidRuntime(4709): java.lang.NullPointerException
06-28 05:14:09.786: E/AndroidRuntime(4709):?
at mm.purchasesdk.d.a.a(Unknown Source)
06-28 05:14:09.786: E/AndroidRuntime(4709):?
at mm.purchasesdk.f.a(Unknown Source)
06-28 05:14:09.786: E/AndroidRuntime(4709):?
at mm.purchasesdk.Purchase.init(Unknown Source)
這個是因為重新打包過JAR之后,APK程序已經找不到原來的那幾個xml文件了,需要把它提到apk外面,但也不能直接簡單地解壓加進去,一定要使用一定的工具。
工具有:apktool,aapt,jarsigner
但由于xda論壇的人在上幾個月已經開發出新的apktool了,叫:AndroidMultitool,這個工具很好用,已經集成了上面所有的功能了,大家可以使用這個工具。好,廢話不多說。
大概的流程是:
1,反編譯APK
2,重新編譯成APK
3,用aapt工具把CopyrightDeclaration.xml,mmiap.xml,VERSION這三個文件加到APK的根目錄下面
4,把APK重新簽名,成功!
下面就是對應的步驟:
至于第三步,就是在AndroidMultitool文件夾下面的Program_Files下面的aapt程序:
紅色的就是我自己加進去的文件,要把他們加到run0.apk這個程序里面
其他的三個步驟我就不多說了,主要說一下第3個步驟:aapt工具的使用。
我們主要用到兩個命令行(其他命令大家自己網上找吧,很強大的):
aapt.exe l run0.apk(這個命令是列出APK里面的資源文件目錄)
aapt.exe a run0.apk mmiap.xml(這個命令是把mmiap.xml文件加入到run0.apk中)
當然,我們要加三個文件到里面,各個命令行就不詳寫了,大家自己寫也行了。
搞定后就可以重新簽名就成功了!
AndroidMultitool工具的下載,給一個鏈接給大家吧:http://forum.xda-developers.com/showthread.php?t=2326604。
由于有人說在那個英文網站下載不了,補個CSDN的下載吧~不用積分~
http://download.csdn.net/detail/lihandsome/6582863
另外,也可以直接使用我自己寫的批處理(懂的用就用批處理比較快):
del newtemp.apk
java -jar "apktool.jar" d -s -f temp.apk tmpAndroid
java -jar "apktool.jar" ?b -f tmpAndroid run1.apk
rd /s /q tmpAndroid
aapt.exe a run1.apk mmiap.xml CopyrightDeclaration.xml VERSION
java -jar signapk.jar testkey.x509.pem testkey.pk8 run1.apk run_signed.apk
del run1.apk
zipalign.exe -v 4 run_signed.apk newtemp.apk
del run_signed.apk
另外:有人說發現了另外一個錯誤,就是讀取不了MM扣費JAR包里面的圖片資源,這個問題是因為Unity對APK打包的時候,把JAR包里面的資源封在里面了,解決辦法是:
1,先解壓JAR包,把里面的資源文件夾(mmiap這個文件夾)拿出來
2,在Unity項目的Assets文件夾的根目錄下面新建一個StreamingAssets文件夾
3,把mmiap這個文件夾復制到StreamingAssets文件夾下面就可以了。
目錄最后變成:\Assets\StreamingAssets\mmiap\image\vertical\下面的圖片
轉載請注明出處,謝謝。http://blog.csdn.net/lihandsome/article/details/11919113
總結
以上是生活随笔為你收集整理的Unity3D接入移动MM支付SDK(强联网)的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Coursera奖学金申请模板
- 下一篇: 论文笔记 General Advanta