Namako

海參的潮間帶工作室

Android UnsatisfiedLinkError 問題

Android 的 NDK 是個麻煩的東西 ˊ_>ˋ
如果有的 Library 有編譯 arm-v7a 有的卻沒有編譯,或者這個 module 有支援 x86 那個卻沒有,這種情況下就非常容易出現惱人的java.lang.UnsatisfiedLinkError

看到這個幾乎都是 NDK 的 so 檔有問題 XD

解法

直接在 gradle 寫清楚本專案只支援哪幾種 ABI,作法如下:

1
2
3
4
5
6
7
8
9
10
defaultConfig {
applicationId "your.app.package"
minSdkVersion 17
targetSdkVersion 24
versionCode 17
versionName "1.0"
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
}

重點為 ndk 區塊,abiFilters可自行依照需求增減這幾種處理器

  • x86
  • armeabi-v7a
  • armeabi
  • x86_64
  • arm64-v8a

Hi 喜歡這篇文章的話 可以按個讚或請我喝杯咖啡
Buy me a coffeeBuy me a coffee

目錄