Unity3D 移动MM 支付SDK 问题

本文档详细记录了解决Unity3D 4.6/5.0集成MMBilling 3.1.3 SDK时遇到的问题,包括Handler创建异常和初始化失败的解决方法。通过导出Android工程,避免手动解包和复制资源,以及编写脚本自动化处理签名问题,成功解决集成难题。
摘要由CSDN通过智能技术生成

环境:
Windows 8.1 x64
Eclipse Luna
Unity3D 4.6 / 5.0
MMBilling 3.1.3

2015-04-20

折腾了很久, 实际上仍未解决问题, 直到上周找到高人指点, 才发现没有那么多繁琐的步骤, 步骤如下:

  • 右键点击你的安卓SDK工程, 导出jar文件.
    1

  • 将导出的jar放到Unity工程里面, 路径为\Assets\Plugins\Android\bin

  • 在Unity工程里面, 导出Android Project, 要勾选Google Android Project, 下边的Build按钮才会变成Export
    2

  • 随便选个路径放着, 反正是临时用.

  • 在Eclipse里面导入刚才在Unity下面导出的工程
    3

  • 等Eclipse自动编译好, 直接运行, 大功告成.

几点

  • 要从Unity导出安卓工程, 然后在其它环境下编译
  • 不用手动解包, 复制资源等等
  • 如果有奇怪的BUG, 不妨自己重新开一个新的, 因为笔者在前程序哥的基础上, 无论怎么折腾都不行, 之前我们是安卓工程里面接了一大堆安卓SDK, Unity工程里面接了一大堆Unity SDK, 无论用什么方法, 包括导出工程的方法, 都会遇到奇奇怪怪的问题. 于是笔者在浪费了2天时间之后, 决定把当前项目需要的SDK重新写一遍, 并且一律使用安卓SDK, 目前一起接入的只有MM SDK和Talking Data, 然后问题就这样没了. 虽然之前出错的原因没找到, 但是能确定的是, 问题出在以往接入的某个SDK里面, 我也无心去深究具体原因了, 万一某个SDK已经更新并且没BUG了呢… 这种问题, 只能长叹一口气啊!

以前的错误

1. 创建Handler的问题

在接移动的支付SDK时, 发现有一段代码执行不了

MMBillingHandler iapHandler = new MMBillingHandler(this.context);

我看了一下Handler类的文档, 没有发现它会主动抛出异常, 但是构造方法里面有这样一句话, 说明会抛RuntimeException

Default constructor associates this handler with the Looper for the current thread. If this thread does not have a looper, this handler won’t be able to receive messages so an exception is thrown.

于是尝试着抓一抓, 果然发现有问题, 并且是文档中说的looper的问题.

04-09 21:47:13.551: D/payment(18950): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
04-09 21:47:13.551: D/payment(18950):   at android.os.Handler.<init>(Handler.java:200)
04-09 21:47:13.551: D/payment(18950):   at android.os.Handler.<init>(Handler.java:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值