[AIR接入Android 平台]特别篇-合并jar和调用.so文件的特别补充

这篇文章是对前面系列文章的补充。传送门

也是我最近遇到的几个小问题。称不上有什么技术难点。但是很值得推敲。

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-编译-签名-优化-发布。

至此解决这两个小问题。

《[AIR接入Android 平台]特别篇-合并jar和调用.so文件的特别补充》有3个想法

  1. 以此混淆包为主包。把ANE接口包合并到此包中。这样就不需要解压这个混淆包了。
    这句话怎么操作,求指点……

发表评论

邮箱地址不会被公开。 必填项已用*标注