Android源码引入aar,Android 程序开发 总结二: 源码编译引用包含so文件的AAR文件...

本文介绍了在Android程序开发中,如何处理AAR文件内包含的非ELF格式so文件的问题,以及解决Android.mk中shell命令执行顺序导致的构建错误。通过在device.mk中使用PRODUCT_COPY_FILES解决so文件复制问题,并提供了引用AAR文件中的assets和资源文件的方法。
摘要由CSDN通过智能技术生成

接着上一篇博客的内容继续说。

就在我很得意的认为,终于解决了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

但是这样做还是会遇到问题&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值