如何在Android Studio中的Android targetSdkVersion 26中加载.so文件(本机库)

时间:2017-08-30 08:46:15

标签: android android-studio java-native-interface

我正在尝试将so文件(已经编译的本地C / C ++代码)加载到我的Android应用程序中,但它不起作用(抛出异常并且应用程序停止工作)。< / p>

  

E / AndroidRuntime:致命异常:Thread-685                                                                                     处理:com.dsyr.selftoidcardmatcherdemo,PID:11990                                                                                     java.lang.UnsatisfiedLinkError中:

如果我将targetSdkVersion更改为21,那么它运行良好。那么在targetSdkVersion 26中lib无法加载的原因是什么?在版本26中我们应该做些什么吗?

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题,我试试这个 删除所有64位库,只留下32位库:

在申请enter image description here。mk:

APP_API := armeabi armeabi-v7a x86 mips

app 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位