Unity3D接入移动MM支付SDK(强联网)的问题

原地址:http://blog.csdn.net/lihandsome/article/details/11919113

因为移动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(强联网)的问题

时间: 2024-08-01 10:46:43

Unity3D接入移动MM支付SDK(强联网)的问题的相关文章

Unity3d 接入 移动MM支付SDK(2.3) 全攻略

原地址:http://blog.csdn.net/dingxiaowei2013/article/details/26842177 先将例程运行起来 下载例程(csdn积分不够上传不了,只能用百度网盘):http://pan.baidu.com/s/1gd7PrxD 打开unity工程mm_pay_unity build apk包至工程目录\Assets\plugin_pay_mm\Tools\AndroidMultitool\Program_Files\app_temp.apk  (注意apk

unity 引用 移动mm 支付sdk

原地址:http://blog.csdn.net/u012085988/article/details/17531005 资源下载:http://download.csdn.net/detail/u012085988/6770625 (最近csdn貌似出了问题,超链接不能用了,博客写好发布后发现被截短了,这是什么情况) 点击下载资源.这里包含有unity引入移动mmsdk所需要的文件,以及一个编译好的android测试程序.若不想写代码,不想建eclipse可以下载资源包,跳过eclipse部分

Unity接入移动MM支付(Android)

移动没有用于Unity3D的移动MM支付SDK的接入,所以-- 这样一来,你需要去官网下载IAP-SDK做成jar包供Unity调用:http://dev.10086.cn/iap/?action=down&areaid=1354082900 1.先要明确一点的是在Unity的Assets目录中你得有个Plugins/Android的目录,并且必须在Assets目录,否则无法将资源打包到PAK.此时,你可以尝试打一个apk的包,用压缩文件打开的目录结构是这样的: 为什么就这样了呢?我也想知道!这

Unity3d游戏中添加移动MM支付SDK问题处理

原地址:http://www.tuicool.com/articles/I73QFb 由于移动mm的SDK将部分资源文件放在jar包中,导致Unity无法识别,提示failed to find resource file(mmiap.xml}错误 需要做以下几步操作: -- 解压mmbilling.2.3.0.jar,提取CopyrightDeclaration.xml.mmiap.xml.VERSION文件,和mmiap文件夹 -- 拷贝mmiap文件夹到Unity项目Assets/Plugi

cocos2dx安卓客户端接入移动MM付费SDK

C++和java的调用需要使用JNI,这里使用cocos2dx提供的JniHelper就可以满足要求. 以游戏中购买炸弹道具为例 流程图: 先按照文档进行配置: 在Java工程中新建一个包"IAP",作为C++与mmsdk交互的中间层: Handler和Listener可以使用Demo自带的两个类,将Demo2.4.2中的IAPHandler.java和IAPListener.java复制到IAP中: 在package IAP下新建类IAPJni 1 package IAP; 2 3

移动MM强联网SDK混淆出错

1.需求:接入移动MM强联网支付SDK( V3.0.0),游戏需要混淆 2.问题:按照移动MM的文档加入防止混淆的语句 -libraryjarslibs/mmbilling.3.0.0.jar -keepclass safiap.framework.** {*; } -keep class com.ccit.** {*; } -keep class ccit.** { *; }   -keep class mm.purchasesdk.** -keep class mm.purchasesdk.

Unity3d集成移动MM SDK 2.2的技术要点(坑爹的MM SDK)

原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140423517951/ U3D集成移动MM的SDK绝对是以坑爹为主的东西. 浪费大量时间去弄这玩意.真不知道设计MM SDK的人咋想的,你们应该去参考下移动百宝箱的SDK设计方式,简单易用不坑爹,1小时内绝对能搞定. 因为移动MM支付的SDK只提供android版本的,要自己写过一个android项目再打包重新生成一个jar来供Unity3d引擎使用,这一部分我就不写了,网上

Unity 3D 接入 移动MM (3.1.3)计费SDK

首先很想吐槽移动MM的SDK,简直就是给Unity开发人员找事做.我是一个Unity 小白,完全是为了帮同事接这个SDK,所以一切按照小白的规则来写,希望没有遗漏. 示例代码:http://download.csdn.net/detail/oulong999/8628673 1. Android 库文件 新建一个Android工程,标记为库文件工程. 参照计费SDK 的帮助文档导入SDK . 1> 将mmbilling.3.1.3.jar文件拷贝到应用工程的libs目录下,如没有该目录,可新建

Untiy 接入 移动MM 详解

原地址:http://www.cnblogs.com/alongu3d/p/3627936.html 第一次接到师傅的任务(小龙),准备着手写untiy接入第三方SDK的文章(android 方向),第一次写故而写的不好的地方不要吐槽.如有兴趣可加63438968(untiy 开发群)进行探讨. 本文主要已 unity 和android工程为基础进行解析分析.其次因目前各地sdk平台与unity程序有不兼容问题,故而导致了在发布后会缺少文件.本文也提供了一个解决方案供大家参考. 具体工程可加群6