将so打包进apk ,网上常见的就是 在源码中有c代码,编译出一个so,然后打进apk,也是网上大家转来转去的那几篇文章,因为一致只做纯java开发,这种方法没有试过。
如果是第三方so ,则有诸多麻烦。
一种就是 其他同事现在的方法,在eclipse开发,那么libs/armeabi下的so 自动弄进去了,真是简单又方便。
另外一种就是要把so拷贝到编译环境的某个目录,在编译代码时整合进去。
客户方给了一个so,不知道开发细节,需要编进去。我习惯了在代码树下开发,刚开始并没有注意配置so,结果编译正常,安装正常,但是一旦 loadLibary ,就exception: load library renturn null。
解压发现apk发现,里面并没有源码对应的libs/armeabi/xxx.so,看来并没有打包进去。
在纠结中实战,找到如下实用方法;
1 copy 你的so 到out/target/product/generic/system/lib 。 这个目录是你没有修改过TARGET_PRODUCT的情况下。
如果你的TARGET_PRODUCT是 XXXYYY,则要去out/target/product/XXXYYY/system/lib 。
ps:这一步其实可以在第二步中的mk文件中用代码执行,同事给的参考为:
$(shell mkdir -p $(TARGET_OUT)/../obj/STATIC_LIBRARIES/$(LOCAL_MODULE)_intermediates )
$(shell cp $(LOCAL_PATH)/lib/l