錯誤一
在Genymotion中執行程序時,會出現找不到ndk編譯的庫的錯誤,可是libs目錄下明明存在對應的so庫
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.handsome.ndkvoice-2/lib/arm/libfmodL.so" has unexpected e_machine: 40
解決方案:
由於Genymotion不支持arm架構,所以得用真機測試
錯誤二
在Genymotion中執行程序時,會出現找不到ndk編譯的庫的錯誤,可是libs目錄下明明存在對應的so庫
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.handsome.ndkvoice-1/base.apk"],nativeLibraryDirectories=[/data/app/com.handsome.ndkvoice-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libfmodL.so"
解決方案:
由於你的so庫都放在libs目錄下,沒有放在AndroidStudio的jniLibs目錄下,所以找不到對應的so庫,這個時候應該在app的Gradle上添加下面代碼,讓jniLibs目錄指向libs目錄
sourceSets.main { jniLibs.srcDirs = ['libs'] jni.srcDirs = [] }