java Android Studio,带有适用于Android ndk的opencv,libmixed_示例。所以
所以我到处找都找不到答案。我使用安卓 studio与opencv和安卓 ndk一起运行opencv的示例应用程序mixed_sample。该应用程序构建得很好,但我手机上的应用程序立即崩溃,出现“OCV T2 Mixed Processing has stopper”,下面的日志显示它找不到“libmixed_sample.so”,我可以确认它是在“/src/main/libs/(device)/libmixed_sample/so”中生成的。经过大量研究后,这是我当前的设置:
建造。格雷德尔:
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'com.安卓.application'
安卓 {
compileSdkVersion 21
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "org.opencv.samples.tutorial2"
minSdkVersion 8
targetSdkVersion 21
ndk {
moduleName "mixed_sample"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-安卓.txt'), 'proguard-rules.txt'
}
}
sourceSets.main {
jniLibs.srcDir 'src/main/jniLibs' //set .so files directory to libs
jni.srcDirs = [] //disable automatic ndk-build call
}
// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type: Exec) {
commandLine '/home/alec/libs/安卓-ndk-r12b/ndk-build', '-C', file('/home/alec/AndroidStudioProjects/OpenCV/openCVTutorial2MixedProcessing/src/main').absolutePath
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}
}
dependencies {
compile project(':libraries:opencv')
}
logcat:
-----------------------------------------------------------------
08-12 15:11:39.525 20659-20659/org.opencv.samples.tutorial2 D/OCVSample::Activity: OpenCV library found inside package. Using it!
08-12 15:11:39.525 20659-20659/org.opencv.samples.tutorial2 I/OCVSample::Activity: OpenCV loaded successfully
08-12 15:11:39.525 20659-20659/org.opencv.samples.tutorial2 D/AndroidRuntime: Shutting down VM
08-12 15:11:39.535 20659-20659/org.opencv.samples.tutorial2 E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.opencv.samples.tutorial2, PID: 20659
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/org.opencv.samples.tutorial2-1/base.apk"],nativeLibraryDirectories=[/data/app/org.opencv.samples.tutorial2-1/lib/arm64, /data/app/org.opencv.samples.tutorial2-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libmixed_sample.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at org.opencv.samples.tutorial2.Tutorial2Activity$1.onManagerConnected(Tutorial2Activity.java:49)
at org.opencv.samples.tutorial2.Tutorial2Activity.onResume(Tutorial2Activity.java:106)
at 安卓.app.Instrumentation.callActivityOnResume(Instrumentation.java:1286)
at 安卓.app.Activity.performResume(Activity.java:6987)
at 安卓.app.ActivityThread.performResumeActivity(ActivityThread.java:4145)
at 安卓.app.ActivityThread.handleResumeActivity(ActivityThread.java:4250)
at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3361)
at 安卓.app.ActivityThread.access$1100(ActivityThread.java:222)
at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
at 安卓.os.Handler.dispatchMessage(Handler.java:102)
at 安卓.os.Looper.loop(Looper.java:158)
at 安卓.app.ActivityThread.main(ActivityThread.java:7229)
at java.lang.reflect.Method.invoke(Native Method)
at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
08-12 15:11:43.095 20659-20659/org.opencv.samples.tutorial2 I/Process: Sending signal. PID: 20659 SIG: 9
安卓。mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
ifdef OPENCV_ANDROID_SDK
ifneq ("","$(wildcard $(OPENCV_ANDROID_SDK)/OpenCV.mk)")
include ${OPENCV_ANDROID_SDK}/OpenCV.mk
else
include ${OPENCV_ANDROID_SDK}/sdk/native/jni/OpenCV.mk
endif
else
include /home/alec/libs/OpenCV-安卓-sdk/sdk/native/jni/OpenCV.mk
endif
LOCAL_MODULE := mixed_sample
LOCAL_SRC_FILES := jni_part.cpp
LOCAL_LDLIBS += -llog -ldl
include $(BUILD_SHARED_LIBRARY)
申请。mk:
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all
APP_PLATFORM := 安卓-21
共 (0) 个答案