墨客笔记公众号 发表于 2017-12-1 15:15:31

求救,谁做个腾讯移动ane,我遇到问题啦

http://blog.csdn.net/linguifa/article/details/25832011/   原文出处
本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方案
问题一:编译报错:Unable to resolve target 'android-7':
将低版本的代码导入eclipse时,常遇到这样的问题:Unable to resolve target 'android-XX'
这是原代码中project.properties 的 Project target 设置与当前eclipse环境设置不一致所致。
AVD(Android Virtual Device),是Android的模拟器。具体介绍和命令参数参照http://www.cr173.com/html/19430_1.html
解决这个问题,只要把project.properties文件用记事本打开,将 Project target.target=android-7 改为你当前支持的AVD版本即可
一般 android-8 对应的android sdk 是2.2, android-10对应的是2.3

问题二:android怎么修改gen里的包名?
gen是根据你的应用程序包名自动生成的,不需要、也不能手动修改
可以把应用程序的包名改掉,重新编译下,就看到修改的效果
名字在AndroidManifest.xml的package中,
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.flipe"

问题三:打包失败,原因之一是xml代码不规范,xml注释必须严格按照注释符来注释代码
<!-- 注释 -->
如果写成这样,则编译时会报错
<!-- 注释 ------>

问题四:生成的ane引入后调用sdk代码后无反应,或者出现闪退现象
定位代码,是调用Activity窗体类时出错导致,但在android项目单独运行这个Activity时正常
Intent intent = new Intent();
intent.setClass(context.getActivity(),SDKActivity.class); //SDKActivity即我们自定义的Activity
context.getActivity().startActivityForResult(intent,0X01);
后通过logCat打日志发现
原因1:没有引入msdk中的一个so类库NativeRQD文件,把该文件打包放进apk后ok
原因2:使用了实例中PlatformTest类,直接使用WGPlatform类则正常

问题五:调用QQ登录,登录时接口OnLoginNotify报flag=-1错误
原因是未配置网络文件,需要把assets文件夹里面的内容放到flash项目中打包进去

问题六:如何把android项目中res里面的资源文件打包进air发布的apk中?
只需要把res里面的资源文件放到ane Android-ARM文件夹下打包进ane,发布apk时会自动打包进apk中
注意资源文件分三种:
1、apk/assets文件可以放在air项目工程文件下打包进apk
2、apk/res文件可以放在ANE的打包文件夹中打包进ane
3、其他位置文件就只有打包apk后在反编译添加进去在打包签名

问题七:ane项目中如何读取res下的文件(air项目和android项目不同)
例;drawable是res文件夹的子文件夹,sample_yuanbao是里面的文件名称
1、android项目:
    通过id获取, int resId = R.drawable.sample_yuanbao;
    Resources r =this.getContext().getResources();//得到Resources对象
    Inputstream is = r.openRawResource( resId);//以数据流的方式读取资源
2、ane项目:
    方法一:
    int resId = cTContext.getResourceId("drawable.sample_yuanbao");
    Resources r =cTContext.getResources();//得到Resources对象
    Inputstream is = r.openRawResource( resId);//以数据流的方式读取资源
    方法二:
    使用使用getIdentifier()获取资源Id
    getApplicationContext().getResources().getIdentifier(name, defType,defPackage)方法在ane中获取资源
详情参见:http://blog.sina.com.cn/s/blog_6714fba701018k8h.html
http://blog.csdn.net/lilu_leo/article/details/6654386

问题八:如何把so文件打包进apk中
air项目:把发布的apk文件先用ApkTool工具(或者其他类似工具)解压,然后把so文件或其他资源文件添加进去,重新打包、签名。
android项目:http://blog.csdn.net/zeng622peng/article/details/6675281

问题九:为何打包资源里面选择了apk文件,也无法打包进apk
原因是flash builder工具打包时会过滤apk,即使选择了.apk文件还是会剔除掉,如果要把第三方apk文件打包进去,必须使用命令行方式打包。

问题十:使用命令行打包apk时,如果获得release的swf文件?
方法一,使用flash builder导出release版本时,在生成temp文件夹后立刻终止flash builder的发布过程,然后去temp文件夹中找;
方法二,使用adt命令行发布swf

问题十一:如何方便的调试ane?
1、用eclipse连接调试android手机程序(连上手机后,eclipse的 logCat里面能看到整个手机上的日志。偶尔看不到重新启动一下就可以)
2、用xcode连接调试ios手机程序(XCode的顶部工具栏->Window菜单->Organizer项开启Organizer窗口,选中要用于调试的设备连接 mac .就可以看到详细日志了。)

我遇上的是问题四,他解决方法的太久了,解决不了我的问题.我初始化的时候,游戏就闪退了.
大神们,帮帮忙.
页: [1]
查看完整版本: 求救,谁做个腾讯移动ane,我遇到问题啦

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)