将 Android 项目改为Library 提示 so文件 没有导入
问题
- library 和宿主怎么共用第三方库
- (library)aar 文件中的so 文件宿主app 获取不到
解决方法
library 和宿主怎么共用第三方库
导入第三方jar 的方式
api 'com.github.bumptech.glide:glide:3.8.0'
implementation 'com.github.bumptech.glide:glide:3.8.0'
compile 'com.github.bumptech.glide:glide:3.8.0'
之前我们一直使用的是 compile (android studio 3.0之后) 使用 api和implementation 导入库
api 和 compile 是一样的
implementation 只对本module有作用, api是对引用他的module 和宿主的module 都可以使用
(library)aar 文件中的so 文件宿主app 获取不到
一个完整的项目 可以被修改为一个library , 一个library 可以打包为aar 文件, 可以导入其他项目中使用
library 的修该方式 最简单的就是 创建一个library项目, 将自己的项目代码移过来, 或者参考library 的builde 文件修改
aar 文件 和jar文件的区别 在于 jar 文件中 只有 java 代码, aar 文件中不只有java 代码也包括 资源文件 so 文件等
宿主项目获取不到library 中的so文件 是因为 需要指定 ndk CPU架构 主 项目需要和Library 配置的一致,否则 在使用到 是so文件的时候就会报 没有导入 so中方法的错误
ndk {abiFilters 'armeabi-v7a'/*, 'x86' ,'armeabi', 'armeabi-v7a', 'arm64-v8a'*/}