这篇文章是对前面系列文章的补充。传送门
也是我最近遇到的几个小问题。称不上有什么技术难点。但是很值得推敲。
A.合并Jar。对于混淆比较严重的jar源码包来说,例如银联的。
会出现类似一下的源码文件。这种文件若解压出来 在一些系统(例如WIN系)的会删掉掉一个。
因为在Win系的系统里面文件名不分大小写。遇到这种包的合并若不小心打包ANE后就会报ClassNoFound错误。
解决方式:
以此混淆包为主包。把ANE接口包合并到此包中。这样就不需要解压这个混淆包了。
B..若库引用了so文件,若不止一个so文件 若so文件还分文件夹。
1.若引用了so文件(我们假如全部都在同一个文件夹)
则把so文件放到 android-ARM/libs下 便可
2.若so文件还分文件夹。例如新版360SDK的引用了:
armeabi/libpaypalm_app_plugin_jar_360game.so
mips/libpaypalm_app_plugin_jar_360game.so
两个不同文件夹的同名so文件。这个时候的解决方式就是:
把armeabi文件夹的so文件放到android-ARM/libs下 同ANE一起打包
把mips(如果有 其他文件夹一并这种做法)文件夹的so连同文件夹 在打包好AIR项目APK之后使用apktool
反编译-放入mips到libs-编译-签名-优化-发布。
至此解决这两个小问题。
以此混淆包为主包。把ANE接口包合并到此包中。这样就不需要解压这个混淆包了。
这句话怎么操作,求指点……
请使用我写的RDT,直接免去了合并jar的步骤. https://github.com/recter/Anti-ADT@332937586