1. 程式人生 > 實用技巧 >將 Android 專案改為Library 提示 so檔案 沒有匯入

將 Android 專案改為Library 提示 so檔案 沒有匯入

將 Android 專案改為Library 提示 so檔案 沒有匯入

問題
  1. library 和宿主怎麼共用第三方庫
  2. (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'*/}