Android java.lang.UnsatifiedLinkError:dlopen失败:找不到符号";mbedtls“熵函数”;
我的build.gradle如下所述:Android java.lang.UnsatifiedLinkError:dlopen失败:找不到符号";mbedtls“熵函数”;,android,android-studio,android-ndk,cmake,Android,Android Studio,Android Ndk,Cmake,我的build.gradle如下所述: apply plugin: 'com.android.application' android { publishNonDefault true //this line compileSdkVersion 21 buildToolsVersion "25.0.3" defaultConfig { applicationId "lnt.test.com.myapplication" mi
apply plugin: 'com.android.application'
android {
publishNonDefault true //this line
compileSdkVersion 21
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "lnt.test.com.myapplication"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
ndk {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a','mips','mips64','arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_ALLOW_UNDEFINED_SYMBOLS=true','-DANDROID_PLATFORM=android-21', "-DANDROID_CPP_FEATURES=rtti exceptions","-DANDROID_ABI=armeabi"
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:21.0.2'
}
我得到以下错误日志dlopen failed:找不到“/data/app/lnt.test.com.myapplication-1/lib/arm/liblwm2m\u client.引用的符号“mbedtls\u entropy\u func”。因此“…看起来您的共享库正在与openssl动态链接。运行
readelf-d liblwm2m_client.so | grep NEEDED
时会得到什么?如果它需要libssl.so或libcrypto.so,则您可能必须静态链接openssl。看起来您的共享库正在动态链接openssl。运行readelf-d liblwm2m_client.so | grep NEEDED
时会得到什么?如果需要libssl.so或libcrypto.so,您可能必须静态链接openssl。我使用cmake和externalNativeBuild使用android studio 2.3.2构建mbedclient,我使用cmake和externalNativeBuild使用android studio 2.3.2构建mbedclient