游戏母包如何解决方法数超限

QuickSDK | 2019-03-15 | 技术干货

    起因: Android系统中,一个Dex文件中存储方法id用的是short类型数据,所以导致你的dex中方法不能超过65k。由于CP 母包集成过多SDK,或者渠道SDK方法数过多时,两项合并就可能导致渠道包方法数超过65K的限制。

 

具体表现:当打包失败日志中出现这2句话时,表示渠道包方法数超限。

 

母包处理方法:将母包拆分成多个dex

 

1.首先将母包移动到反编译脚本或者反编译工具中,反编译得到以下文件夹列表,在此文件目录下,新建一个smali_classes2/com文件夹路径;

2.进入smali/com文件夹,将里面的部分代码文件夹剪切移动到刚刚新建的smali_calsses2/com 路径下(注意quicksdk相关的文件夹,以及游戏Application启动相关的文件夹不能移动,比如Application的路径 以及 Application中调用了某些sdk的接口)

 

3.修改母包信息,反编译母包之后,如果游戏想修改游戏母包的targetVersion或者游戏版本号(名),可打开外层文件夹的apktool.yml这个文件修改;

 

 

4.回编译母包,回编译脚本执行完成之后,会在同路径下生成dist文件夹,回编译生成的包就在里面

 

附:反编译脚本工具

https://pan.baidu.com/s/1rtFBi85nES7WSSweTaS8Yw    提取码:q54s



商务合作

李先生:13880511661

市场合作

赵先生:15390049857

技术支持

彭女士:18202818615

官方技术交流群

QQ群:608554925