位置: 编程技术 - 正文
推荐整理分享Unity3D 移动MM 支付SDK 问题(unity3d移动物体),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity3d怎么移动物体,unity3dwasd移动,unity3d移动物体,unity移动ui,unity3d移动物体,unity3d物体移动脚本,unity3dwasd移动,unity3dwasd移动,内容如对您有帮助,希望把文章链接给更多的朋友!
环境: Windows 8.1 x Eclipse Luna Unity3D 4.6 / 5.0 MMBilling 3.1.3
--折腾了很久, 实际上仍未解决问题, 直到上周找到高人指点, 才发现没有那么多繁琐的步骤, 步骤如下:
右键点击你的安卓SDK工程, 导出jar文件.
将导出的jar放到Unity工程里面, 路径为AssetsPluginsAndroidbin
在Unity工程里面, 导出Android Project, 要勾选Google Android Project, 下边的Build按钮才会变成Export
随便选个路径放着, 反正是临时用.
在Eclipse里面导入刚才在Unity下面导出的工程
等Eclipse自动编译好, 直接运行, 大功告成.
几点要从Unity导出安卓工程, 然后在其它环境下编译不用手动解包, 复制资源等等如果有奇怪的BUG, 不妨自己重新开一个新的, 因为笔者在前程序哥的基础上, 无论怎么折腾都不行, 之前我们是安卓工程里面接了一大堆安卓SDK, Unity工程里面接了一大堆Unity SDK, 无论用什么方法, 包括导出工程的方法, 都会遇到奇奇怪怪的问题. 于是笔者在浪费了2天时间之后, 决定把当前项目需要的SDK重新写一遍, 并且一律使用安卓SDK, 目前一起接入的只有MM SDK和Talking Data, 然后问题就这样没了. 虽然之前出错的原因没找到, 但是能确定的是, 问题出在以往接入的某个SDK里面, 我也无心去深究具体原因了, 万一某个SDK已经更新并且没BUG了呢… 这种问题, 只能长叹一口气啊!以前的错误1. 创建Handler的问题在接移动的支付SDK时, 发现有一段代码执行不了
我看了一下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的问题.
有了异常信息, 接下来的事情就很好办了, 由于我们坚持面向Google编程, 面向Stackoverflow编程的原则, 就找到了如下内容
The error is self-explanatory… doInBackground() runs on a background thread which, since it is not intended to loop, is not connected to a Looper.
虽然看起来和我的问题不太一致, 但是至少得出了我在不该创建Handler的地方创建了Handler的结论.
具体原因是我在Unity3D的一个脚本的void Start() { }里面调用了一段安卓代码, 而我在这段代码里面创建了Handler, 虽然不是很确定, 但是可以初步判断如此被调用的安卓代码是在后台线程执行的, 因此无法创建Handler, 最终抛出RuntimeException的异常.
最终我把创建Handler的相关代码直接放在了安卓Activity里面的onCreate方法里面, 问题解决.
2. 无法初始化错误关键词:
以上错误是因为Unity3D重新打包之后, MM SDK找不到原先要的文件了, 因此我们需要做如下事情. 安卓和Unity3D的通讯部分略.
使用解压缩软件解压mmbilling.x.x.x.jar, 笔者使用的是3.1.3版本.将assets/mmiap目录复制到Unity3D工程的Assets/Plugins/Android/assets里面使用Unity3D build apk.因为打出的apk里面缺失文件, 因此会在运行时报错 使用7z打开apk删掉里面的META-INF解除签名添加从mmbilling.x.x.x.jar里面解出来的mmiap.xml, CopyrightDeclaration.xml, VERSION3个文件签名因为过程繁琐, 十分不利于DEBUG, 因此我写了个脚本, 放在Eclipse里面的External Tools里面, 方便使用
最后整好的apk包结构
META-INF是需要你删掉, 然后重新签名生成的.绿色标记的文件就是之前缺失的该脚本简单易懂, 请读者自行修改7z.exe, apk文件, 签名文件密码的路径和参数. 如果有好压, 用好压应该也行. (话说好压是笔者的唯一一个在当年使用盗版xp时, 被预装, 没被我卸载, 然后还喜欢上了的软件)
我的签名命令是找同事要的, 具体参数我也不知道怎么配, 如果我给的jarsigner命令不好用, 请读者自行搜索.
参考: 对我有用: 最早搜到的, 也是网上转载最多的: 7z API: 好压API: Unity3D接入移动MM支付SDK全攻略(后来发现的, 加进来):
Photon Server Photon是什么Photon原意是指光量子。在这里是指exitgames开发的MMO服务器端引擎。Photon包含两个部分。一部分是一个socket服务器,另一部分是其针对各个平
噩梦系列篇之Player受伤功能及伤害效果 下面设定player的受伤数变化及伤害效果显示;添加一个Health脚本。。。下面看脚本的内容;让我们再次Coding起来;usingUnityEngine;usingSystem.Collections;publiccla
linux下Unity3d下如何使用动态链接库 unity3d可以支持两种类型的动态链接库(官方称为Plugins),一种是C#写的Manager的Dll,一种是C/C++写的Dll,其用法不大一样。C#写的Managed的动态链接库相对来说
标签: unity3d移动物体
本文链接地址:https://www.jiuchutong.com/biancheng/377249.html 转载请保留说明!友情链接: 武汉网站建设