Android---apk打包libs自动删除第三方so问题解决(armeabi/armeabi-v7a等多平台so)

开发工具eclipse,如果是as,则不存在这样的问题。

在引用第三方so时,常常会碰到一个问题:

编译之后,libs中的第三方so被删除掉了,导致程序无法运行,而且第三方so是多个平台(armeabi/armeabi-v7a等等)的,这个问题如何解决?

首先在jni目录下,新建一个prebuilt文件夹,当然也可以是别的名字。prebuilt用来存放各个平台的第三方so,这里以armeabi/armeabi-v7a两个平台为例:


然后,在jni层,prebuilt外的Android.mk中添加:

include $(CLEAR_VARS)
LOCAL_MODULE := XXX
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libXXX.so
include $(PREBUILT_SHARED_LIBRARY)
注意:
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libXXX.so
这一句解决了prebuilt中不同平台问题

如果写为

LOCAL_SRC_FILES := prebuilt/libXXX.so

那么,prebuilt文件夹下,只能放一个so

你可能感兴趣的:(Android---apk打包libs自动删除第三方so问题解决(armeabi/armeabi-v7a等多平台so))