2017-08-30 48 views
0

我正在嘗試將so文件(這是一個已編譯的本地C/C++代碼)加載到我的Android應用程序中,工作(拋出異常和應用程序停止工作)。如何在Android Studio中加載.so文件(native lib)在Android targetSdkVersion 26中

E/AndroidRuntime: FATAL EXCEPTION: Thread-685 Process: com.dsyr.selftoidcardmatcherdemo, PID: 11990 java.lang.UnsatisfiedLinkError:

如果我將targetSdkVersion更改爲21,那麼它運行良好。那麼在targetSdkVersion 26中lib不能加載的原因是什麼?在26版中我們應該做些什麼額外的事情?

+0

'「......但它不工作」',這是什麼意思? – pskink

+0

@pskink現在你可以再次檢查。這意味着在加載lib時,應用程序停止工作。 –

+0

''拋出異常'',什麼異常?你的代碼是什麼?你是如何嘲笑我的圖書館的? – pskink

回答

0

我也面臨着同樣的問題,我嘗試這個 刪除所有64位庫和僅剩下32位庫:

在應用enter image description here .mk:

APP_API := armeabi armeabi-v7a x86 mips 

應用gradle這個

defaultConfig { 
    ndk { 
     abiFilters "armeabi", "armeabi-v7a", "x86", "mips" 
    } 
} 

gradle.properties

android.useDeprecatedNdk=true 

Android.mk

LOCAL_PATH := $(call my-dir) 

include $(CLEAR_VARS) 
LOCAL_MODULE := Native 
LOCAL_SRC_FILES := ../cpp/native.cpp // your native c++ file 
LOCAL_C_INCLUDES := ../cpp/native-handler.h //if u have header File 
LOCAL_LDLIBS := -lz -llog -ljnigraphics 
include $(BUILD_SHARED_LIBRARY) 

它將使用32位庫64位

+0

謝謝!你能告訴我Android.mk和gradle.properties文件的位置嗎?而且我的libs都是32bit,沒有64bit。 –

相關問題