接着上一篇博客的内容继续说。
就在我很得意的认为,终于解决了AAR 文件引用问题的时候,又遇到了另外一件事情。该AAR文件里面的so文件,并不都是是ELF格式的lib文件(可以通过unix command file来查看),有两个是"PEM certificate"和“data”类型的文件。像这样的文件,如果按照上一篇的方法来打包的话,会由于文件类型检查不符合,导致build error。具体的build error信息如下:
"File format not recognized"
后面怎么办呢?我就想着在Android.mk里面添加shell语句,把不是ELF格式的lib so文件 copy到指定的build 目录下面:
具体的做法如下:
ifeq (arm64, $(strip $(TARGET_ARCH)))
$(shell cp $(LOCAL_PATH)/jniLibs/jni/arm64-v8a/libxxx.so $(TARGET_OUT)/app/$(LOCAL_PACKAGE_NAME)/lib/arm)
$(shell cp $(LOCAL_PATH)/jniLibs/jni/arm64-v8a/libxxx.so$(TARGET_OUT)/lib/)
else
$(shell cp $(LOCAL_PATH)/jniLibs/jni/armeabi-v7a/libxxx.so $(TARGET_OUT)/app/$(LOCAL_PACKAGE_NAME)/lib/arm)
$(shell cp $(LOCAL_PATH)/jniLibs/jni/armeabi-v7a/libxxx.so$(TARGET_OUT)/lib/)
endif
但是这样做还是会遇到问题&#