一直就有朋友问我手上有没中国游戏移动基地的ANE,假期末几天有点空余,于是就update了….
在写这个ANE的过程中我深深的感受到了他的奇葩.简直把技术用到了极致,中国移动基地的SDK开发客户端现在应该为自己写出那么艰苦卓绝,那么奇形怪状,那么神来之笔,那么旋风无极,那么宇宙超级无敌屌炸天的SDK而暗暗庆幸吧.
对于这个SDK的奇怪程度足以详细写一篇博客来细细阐述.
(PS:严重提醒适用这个ANE的AIR开发者,请从SDK文档 到 我写的README 每一字每一句都仔细阅读,特别是对于我写的README)
2013-11-10
- 更新中国移动游戏基地ANE
- for android 支持android端(android 2.2以上)
- 项目:platformANE
- Github地址:传送门
请问下 我用apktool破解air for android项目的apk的时候,会出现 could not decode file 错误,是正常的吗?然后打包成的apk会运行不了
你的APKTOOL版本问题。。@雅诗兰黛窃笑
请问您用的是哪个版本?我的是1.5.2@Rect
删除user/xxx/apktool 文件夹再试试@雅诗兰黛窃笑
还是一样@Rect
那就不知道什么原因了,如果要看源码的话直接解压缩,使用dex2jar反编译classes.dex文件@雅诗兰黛窃笑
有联系方式吗?请求帮助
上面的问题已经解决,新的问题是添加android:name=”.CmgameApplication”的时候,打包的文件下有armeabi-v7a/libmegjb.so文件,也在对应的包里找到CmgameApplication.java,但是打包出来的apk会闪退,如果不添加这个标签就不会有这个情况,能给予帮助吗?非常感谢。在这个上面卡太长时间了。@Rect
“.CmgameApplication” 改为全路径,不能使用“.”,“.”在AIR发包中翻译成为AIR项目包名了。若有so文件 则把so文件放到 Android-ARM/libs/armeabi 下 ,我使用“.”是由于我在ANE的java端已加入对于包名的类。详细你可以看ANE源码@雅诗兰黛窃笑
这ANE是最复杂,你却给的源码不全,还要求搞个原生的SDK文档来参考,你不知道移动游戏基地的原生SDK更奇葩,不是随便能下载到的。
抱歉源码我三台电脑都找了没找到,我重写一个吧。@roy
谢谢啦!我想反编译SWF,找不到工具。。。。。
demo源码已上传至github的aneTest文件夹@roy
问题已经解决,成功打包
请问下 我用apktool破解air for android项目的apk的时候,会出现 could not decode file 错误,是正常的吗?然后打包成的apk会运行不了
这个问题你是怎么解决的?@雅诗兰黛窃笑
同问 @雅诗兰黛窃笑 这个报错如何解决
这个问题直接忽视掉就可以了,没有影响的。如果打包的apk不能运行,是因为没有签名。@rr
@Rect,我使用你的demo,用adt命令打包包含air runtime的apk时,是不能调用到sdk的;但是采用共享运行时的方式打包确实可以。但是目前我们的需求是要打包独立运行时的,看看@Rect大家有没有遇到相同问题。
资源ID问题,由于运行时增加了res资源内容所以资源ID错乱,(1)解决方式可以参照我的文章:http://www.shadowkong.com/archives/1160,这是比较折中的解决方式,(2)完美的方式是使用我修改了AIR的打包工具:https://github.com/recter/Anti-ADT/tree/master/RDT(目前只支持AIRSDK3.5),我建议你使用第一种方式.@kevin1111
@Rect 回复真迅速,十分感谢,现在马上去试试
@Rect 第一种方式,有个问题,就是游戏基地的sdk里面,R.java这个文件要建在哪个文件夹里面呢?如果参照sdk的demo,R.java是写在cn.cmgame.demo里面的,总不能在我的ane里面建一个叫demo的包吧?所以看到这里之后,我就放弃第一种方式了。
第二种,用RDT去打包,我折腾了一番又下载sdk什么的,最后打出来的包还是运行不了,不知道RDT.xml里面的资源id得怎么写,如果写成跟air的包名一样,那么RDT打包的时候就会报错,没辙了。
能不能留个联系方式,直接沟通一下?已经折腾好几天了这个游戏基地的sdk。
我检查了一下,你的问题和资源ID无关,我估计是你没按照我写的详细步骤操作,详细步骤请看:传送门,注意一步都不能错,这个SDK本身如此复杂.请仔细看好我写的每一步.
PS1:注意AIR的包名是:air+-app.xml的ID,例如我-app.xml的id是com.cmgc.test,则apk的包名会变成:air.com.cmgc.test.所以配置参数的时候注意加上
PS2:调试版AIR打包的APK包名会加上.debug,也就是变成air.com.cmgc.test.debug@kevin1111
@Rect 呃……很遗憾的,游戏基地的sdk2013年12月12日又更新了一次,我照搬你的demo过去,打包后还是不行,@Rect 烦请有时间的话试试新版的sdk吧
可能是我直接把新的sdk资源覆盖你的demo里面的资源,导致读取资源有问题。后来我把旧版的全部删掉,再把新版的sdk资源重新复制过去,重新打包,居然可以了!!
不过,这里有个小细节,如果apk打包时,参数-target写的是apk-captive-runtime,也就是说打包独立运行时的版本,那么打包ane的时候,要把libmegjb.so复制到armeabi才行,而不是armeabi-v7a。因为我发现,当参数是apk-captive-runtime时,并不会把armeabi-v7a的so文件打包进去,而是把armeabi的so文件打包进去。(不是很确定哈,不过保险起见,armeabi和armeabi-v7a我都放了libmegjb.so)希望对后来的人有帮助……
关于ANE中so文件怎么放 我已经有文章说明:传送门,另外在我定制的打包工具RDT中 已经统一放到armeabi-v7a中.@kevin1111
请教一下,我把项目文件更新下来,直接使用buildAPK文件夹里面的bat命令打包,然后使用apktool解包,修改xml文件,再打包签名,出来的apk安到手机上,运行也会崩溃,是哪里出问题了呢
好像现在最新的ane不是使用最新的sdk编译的不行,能不能烦请使用最新的sdk打包个ane供使用呢。
万分感谢!!
我并不清楚官方SDK是否更新,A.你检查下是否so文件没放到指定的文件夹(android-ARM/libs/armeabi-v7a),B.若官方sdk有更新,则取官方的jar与ANEjava端的jar合并再生成ANE@牛牛
刚才发错地方了 ,移动基地退出按钮没有打开确认退出界面,请问下为什么呢?
用你提供的ane文件运行就报,找不到源com.cmgc.ane::CmgcExtension/CmgcInit,自己跟着教程做反编译也没有成功,希望不吝赐教。或者+QQ275573421.指导一下
查看Logcat 看报什么错?@sweet
@Rect
AS3中怎么使用Logcat?
能帮忙更新下移动基地的最新包不~移动那边要求要最新的
@rabee, https://github.com/platformanes/AndroidCmgcGame/tree/master/V2.1.9 这个应该是最新的了啊?
@Rect,用这个打包提交了,移动那边通不过,说sdk版本太旧, 现在最新的是21017版本的sdk~
@Rect, 怎么看你这个ane的什么sdk的版本呢?
@Rect 能再帮我打包个新版的ANE不,这个旧版的通不过哦~~
@rabee, 最新的版本是V2.1.9. 打包新版ANE很简单,把res下的 和 so库替换掉即可.
@Rect, 好的谢谢
替换了后还是不行啊,新版本的sdk图片都换了,好像更新不少东西~能麻烦你帮我重新打包个不~需要我发sdk给你吗?21017版本的
@Rect,替换后,起来加载资源的时候有听到声音,但是卡死了~过不去~
@rect,帮忙重新打个最新的包吧~~
@rabee, 你把最新的SDK 发我邮箱.我找不到地方下载
Rect,最新版的SDK发到你邮箱了,麻烦你了~谢谢!
@rabee, 没收到..
Rect,中国移动安卓单机版的ANE有么?
@昊, 不是同一个么?
@Rect, 中国移动游戏基地SDK,分安卓单机和安卓网游两个版本的,安卓网游SDK版本号是v21017,安卓单机SDK版本号是V20017,不知道您写的ane是网游的还是单机的?
@昊, 那应该是网游的.
@Rect,我是发送到vvrect@gmail.com的,那我再给你发到rectvv@gmail.com上。你稍等再查看下哦~
@Rect,发了3次终于发送成功了~
@Rect,有没有时间重新帮我打包下~~谢谢!
@rabee, 我会在周末更新..
@Rect,好的,麻烦你了,我早上测试了2.2.0版本的demo不能用~估计你还没调吧~
Rect,有时间能帮忙弄个中国移动安卓单机SDK的ANE么?万分感谢了!
@昊, 参照我博客的教程,自己先试试?
@Rect, 好的,我先试试,还没有搞过ANE。。
@Rect, 我试了一天,各种编译不过。。。真心搞不定了,Rect能否帮忙写一个呢?有偿写也行。万分感谢了!
@昊, 我建议你按着我的教程操作.我能帮你写一个,但是我不能帮你写全部啊?而且掌握这个技能会让你技术有一个质的提升.当然不是我不想赚这个钱.只是码农的钱都是血汗钱.
@Rect,移动基地最新的2.2.0不能用,能帮忙重新搞个可以用的不?麻烦你了,谢谢~!
测试的apk,安装了,按钮按了都没返回任何信息~~
@rabee, 再下载一次.更新了最新的版本
@rabee, https://github.com/platformanes/AndroidCmgcGame/tree/master/V2.2.0
请先看一次github的Readme!
@Rect,好的,谢谢!
@Rect,你那cmgc.apk有测试过没,我安装了,打开是黑屏了,看不到东西,另一把手机直接无法安装~这个跟环境有关系吗?
@Rect,我更新了air sdk14,cmgc.apk测试通过了~~
@Rect,我也是没有办法了,项目逼得紧,我也从没有搞过ANE,实在没辙了,才来麻烦你的。项目时间紧,也不给我时间来学习这些。实在没办法啊。Rect大神,如果有时间,能不能帮我一把?万分感激啊!
@昊, 同学,我已经把ANE从怎么开始,到遇到问题怎么解决 都写在了博客上.
在吗。我用了你最新的ane。发现充值的背景图没有。是什么原因?
@sophia, 估计是资源无法获取.请查看eclipse 的 LogCat看输出什么信息
@Rect, 你好 就是你给的2.2的demo都有这样的问题,我看了 没有报什么错误呀 ,麻烦你有时间安装一下 看看
@Rect, 测试了 是因为缺资源,但不知道你用的是哪个资源 。。能不能把你当时的资源也上传上去
@sophia, 我应该是测试没问题才分享的.
你下载一下试试哈哈
支付阶段缺资源
@sophia, 请尝试下最新版本的ANE,如果真的还有问题,请拿源码尝试修改.我已经不用AIR很久了.
@Rect, 你好,我java端明明有CmgameApplication这个类,但我打包成apk的时候查看classes.dex文件就没有了。。我发布的jar文件还有,这是怎么回事??
我这里也找不到对应的CmgameApplication。。。。求解决办法
@sophia, 配置问题,仔细看github的Readme