博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D接入移动MM支付SDK(强联网)的问题
阅读量:4919 次
发布时间:2019-06-11

本文共 2194 字,大约阅读时间需要 7 分钟。

因为移动MM支付的SDK只提供版本的,要自己写过一个android项目再打包重新生成一个jar来供引擎使用,这一部分我就不写了,网上也提供很多的教程,主要是已经成功调用之后,会发生以下的错误:

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工具的下载,给一个链接给大家吧:。

由于有人说在那个英文网站下载不了,补个CSDN的下载吧~不用积分~

 

另外,也可以直接使用我自己写的批处理(懂的用就用批处理比较快):

del newtemp.apk

 -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\下面的图片

 

 

转载请注明出处,谢谢。

 

转载于:https://www.cnblogs.com/android-blogs/p/6419604.html

你可能感兴趣的文章
手写事件代理函数 (Delegated function)
查看>>
test1
查看>>
(转载)面试题收集——Java基础部分(一)
查看>>
Java泛型中的? super T语法
查看>>
SSH框架学习步骤
查看>>
react config test env with jest and create-react-app 1
查看>>
#if (DEBUG)
查看>>
HDU 6140 Hybrid Crystals
查看>>
理解urllib、urllib2及requests区别及运用
查看>>
wpf enum绑定到comcobox控件
查看>>
写一个singleton
查看>>
ClosureTemplates(1-2):从Yaya说起
查看>>
CSS 实现隐藏滚动条同时又可以滚动
查看>>
struts_20_对Action中所有方法、某一个方法进行输入校验(基于XML配置方式实现输入校验)...
查看>>
PHP安全性
查看>>
php get_include_path();是干嘛的、??还有set_include_path();/?????
查看>>
sql server 数据库连接字段解析
查看>>
java并发面试常识之copyonwrite
查看>>
历届试题 大臣的旅费
查看>>
实验六
查看>>