资讯动态 > 游戏母包如何解决方法数超限
Android系统中,一个Dex文件中存储方法id用的是short类型数据,所以导致你的dex中方法不能超过65k。由于CP 母包集成过多SDK,或者渠道SDK方法数过多时,两项合并就可能导致渠道包方法数超过65K的限制。
当打包失败日志中出现这句话时,表示渠道包方法数超限。
将母包拆分成多个dex,使用工具前,请在电脑上安装JDK,详情百度安装;
1.首先将母包移动到反编译脚本或者反编译工具中(切记不是双击脚本运行),反编译得到以下文件夹列表,在此文件目录下,新建一个smali_classes2/com文件夹路径;
2.进入smali/com文件夹,将里面的部分代码文件夹剪切移动到刚刚新建的smali_classes2/com 路径下(注意quicksdk相关的文件夹,以及游戏Application启动相关的文件夹不能移动,比如Application的路径 以及 Application中调用了某些sdk的接口)
3.修改母包信息,反编译母包之后,如果游戏想修改游戏母包的targetVersion或者游戏版本号(名),可打开外层文件夹的apktool.yml这个文件修改;
4.回编译母包,回编译脚本执行完成之后,会在同路径下生成dist文件夹,回编译生成的包就在里面
注意事项:
1. 除了com下,别的文件也可以移动,只要保证游戏application及其父类、QuickSDK的代码,以及闪屏在smali下即可
2. 可以创建多个smali_classesX文件夹,如smali_classes2 smali_classes3 smali_classes4 ...最好是把母包的大部分方法移动到smali_classes3及以后的文件夹内
3. 任何调用了qk的方法,接口的类也只能放在smali下, 不能分qk的方法
附:
https://pan.baidu.com/s/19FVc_e_asEO8IZxrlUHtWQ 提取码: mmp8
反编译工具使用可参考文档:
李先生:13880511661
QQ:48157910
郭女士:18349260870
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538