quick3.3集成anysdk升级为最新版本anysdk的问题解决

初学quick-cocos2d,3.5版本变化很大,问题挺多,后来直接选用quick3.3final版本。使用quick3.3的用户都知道,里面集成了anysdk,但是官方工作人员称里面的anysdk不是最新版本,建议升级为最新版本的anysdk framework,做法是直接替换旧的相关文件(主要是安卓工程里面的protocols、libs目录下相关包和文件),但是问题来了,使用ide直接连真机调试的时候报错了,错误信息如下:

现象是点击登录后闪退。

错误显示UserWrapper.getLoginServerId找不到方法getLoginServerId ,原因是新版的anysdk已经把方法名改为getLoginServerID了。我明明已经把相关的包全部替换了,但是依然还是报错,幸运的是通过build_apk.sh脚本打包出来的apk可以正常运行,把第三方sdk打入apk也可以正常运行。因此问题集中在用ide直接运行时的apk文件:PrebuiltRuntimeLua.apk

PrebuiltRuntimeLua.apk:此文件其实是个模板(更直接点说是个apk的空壳),用ide创建工程时从quick的模块库(/quick-3.3/quick/templates/lua-template-quick/runtime/android/PrebuiltRuntimeLua.apk)中copy过来的。里面集成了anysdk旧的相关包(罪魁祸首)。

解决方法:把PrebuiltRuntimeLua.apk中旧的anysdk相关包替换为最新的。替换方法是解压apk后反编译,替换之后再编译成apk,替换后生成的新的PrebuiltRuntimeLua_new.apk,然后ide真机调试的时候选择PrebuiltRuntimeLua_new.apk运行。

目前只测试了登录,支付登尚未验证。希望对大家有点帮助。如有更好的方法麻烦大家跟帖分享。

附上打包好的PrebuiltRuntimeLua_new.apk
上传的文件看不到,直接发百度网盘链接:http://pan.baidu.com/s/1bnhLU6j

http://pan.baidu.com/s/1bnhLU6j