守望者--AIR技术交流

标题: 彻底解决按[home]切掉SDK界面的问题 [打印本页]

作者: 破晓    时间: 2015-1-20 09:25
标题: 彻底解决按[home]切掉SDK界面的问题
本帖最后由 破晓 于 2015-1-20 09:33 编辑

关于这个BUG的描述和之前的解决方式:

BUG描述:



引发原因:


这是由于游戏主Activiry的launchMode 和 SDK 的activity的launchMode 有冲突引发的,AIR项目的主activity的launchMode是SingleTask  


反编译后查看如下:

  1. <activity
  2.             android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
  3.             android:label="@string/app_name"
  4.             android:name=".AppEntry"
  5.             android:screenOrientation="landscape"
  6.                 android:launchMode="singleTask"
  7.             android:configChanges="keyboardHidden|orientation|screenSize"
  8.             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








欢迎光临 守望者--AIR技术交流 (http://www.airmyth.com/)