我正在使用 Android Studio 3,并且尝试在我的设备上使用 OpenCL。
APK 编译并失败于:
java.lang.UnsatisfiedLinkError:dlopen失败:找不到库“libcutils.so”
这是我的 build.gradle:
apply plugin: 'com.android.application'
def appDir = getProjectDir().toString()
def includeDir = appDir + "/src/main/cpp/include/"
def libDir = appDir + "/src/main/jniLibs/"
def arm64lib = libDir + "/arm64-v8a/"
def armeabilib = libDir + "/armeabi-v7a/"
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.miche.androidopencltest"
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-frtti -fexceptions"
cppFlags "-I${includeDir}".toString()
cppFlags '-std=c++11'
}
}
}
splits{
abi{
enable true
reset()
include "armeabi-v7a"
universalApk false
}
}
project.ext.versionCodes = ['armeabi-v7a': 1]
buildTypes {
release {
//minifyEnabled false
//proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
我哪里做错了?
EDIT
即使在设备的 /lib/ 文件夹中,我也找不到正确的 .so 。
即使在设备的 /lib/ 文件夹中,我也找不到正确的 .so 。
根据https://developer.android.com/about/versions/nougat/android-7.0-changes https://developer.android.com/about/versions/nougat/android-7.0-changes:
应用程序不应使用未包含在 NDK 中的本机库,因为它们可能会在不同版本的 Android 之间发生更改或删除。
libcutils.so
是私有 NDK 库之一。
如果应用程序的目标 API 级别为 24 或更高级别,则您的应用程序将崩溃,因为您正在尝试访问私有库。请注意,您的应用程序的目标是 28targetSdkVersion 28
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)