本帖最后由 破晓 于 2015-1-20 09:33 编辑
关于这个BUG的描述和之前的解决方式: BUG描述:
- 项目在打开SDK 登录 或者支付 论坛 个人中心等界面之后
- 按下 home 键
- 重新打开应用 SDK界面会消失
引发原因:
这是由于游戏主Activiry的launchMode 和 SDK 的activity的launchMode 有冲突引发的,AIR项目的主activity的launchMode是SingleTask
反编译后查看如下: - <activity
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
- android:label="@string/app_name"
- android:name=".AppEntry"
- android:screenOrientation="landscape"
- android:launchMode="singleTask"
- android:configChanges="keyboardHidden|orientation|screenSize"
- android:windowSoftInputMode="stateHidden|adjustResize">
复制代码 而我们SDK的launchMode就由各个SDK客户端开发自己定义了。
关于android四种launchMode的详细情况请看 传送门
解决方式:1.反编译修改主activity的launchMode为默认 就是去掉;
2.修改SDK所有activity的launchMode为 SingleTask;
注意:这种方法并不适用与全部SDK,具体还需要看SDK的情况。我正寻找更简单的解决方式。
概述:之前的解决方式是用apktool反编译 修改XML,但是这种方式繁琐并且容易出错, 由于手游很多很多的小渠道。经常要出几百 甚至上千个APK。不可能去反编译那么多个包的。 而且ADT对apk的签名是用.p12文件 反编译修改会改变签名。 我之前就是由于签名错误导致玩家无法更新新版本的应用。 这BUG会引发: 1.例如在支付界面的时候 按home跳出桌面 再返回 则支付界面消失(看支付宝验证短信需要跳出桌面) 2.如果是GPU加速模式的话 会丢3D加速环境 终极解决方式:1.之前传送门所说的 用apktool反编译 修改XML的launchMode 但是这种方式 太繁琐 不适合批量出包的项目,我隔壁的项目组就每天要出500个包的。一个一个去反编译修改 这要到那一天。 2.使用我修改过的adt.jar替换 FBSDK下的 例如我的是替换:
D:\FB\Adobe Flash Builder 4.6\sdks\AIR3.5\lib\adt.jar
至于ADT.jar的修改教程。 这个技术已经不在这篇文章所在的范畴了。 下载地址
备用地址:http://pan.baidu.com/share/link?shareid=4042790008&uk=1761709694
本文来自:http://shadowkong.com/archives/1196
|