首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Opencv库返回null

Opencv库返回null
EN

Stack Overflow用户
提问于 2016-04-28 06:05:40
回答 1查看 322关注 0票数 0

当我在android中集成Open以进行眼睛检测时。集成消息打印后,Opencv安装成功,消息生成,但在他们给出错误后。

无法从加载器dalvik.system.PathClassLoader加载detection_based_tracker [DexPathList[zip dalvik.system.PathClassLoader/供应商/lib,/system/lib]]:findLibrary返回null

代码语言:javascript
运行
复制
Process: com.example.admin.lanskart, PID: 24341
java.lang.UnsatisfiedLinkError: Couldn't load detection_based_tracker from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.admin.lanskart-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.admin.lanskart-2, /vendor/lib, /system/lib]]]: findLibrary returned null
        at java.lang.Runtime.loadLibrary(Runtime.java:365)
        at java.lang.System.loadLibrary(System.java:553)
        at com.example.admin.lanskart.MainActivity$1.onManagerConnected(MainActivity.java:69)
        at org.opencv.android.AsyncServiceHelper$3.onServiceConnected(AsyncServiceHelper.java:319)
        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1140)
        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1157)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:5299)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
        at dalvik.system.NativeStart.main(Native Method)
EN

回答 1

Stack Overflow用户

发布于 2016-04-28 07:57:56

您需要在gradle中定义jni源代码的目录。你的应用程序应该是这样的:

代码语言:javascript
运行
复制
   apply plugin: 'com.android.model.application'
model {
    android {
        compileSdkVersion = 22
        buildToolsVersion = "23.0.0"

        defaultConfig.with {
            applicationId = "enter.your.packagename"
            minSdkVersion.apiLevel = 10
            targetSdkVersion.apiLevel = 22
            versionCode = 1
            versionName = "1.0"
        }


    }

    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles += file('proguard-rules.pro')
        }
    }

    /*
     * native build settings
     */
    android.ndk {
        moduleName = "ndklibrarysample"
        cppFlags += ["-std=c++11", "-fexceptions", "-frtti"]
        cppFlags  += "-I${file("D:yourpathtothesefiles/OpenCV-3.0.0-android-sdk-1/OpenCV-android-sdk/sdk/native/jni/include")}".toString()
        ldLibs += ["android", "EGL", "GLESv2", "dl", "log", "z"]
        stl = "gnustl_static"
    }

    android.productFlavors {
        create("arm") {
            ndk.with {
                abiFilters += "armeabi"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath + "\\src\\main\\jniLibs\\armeabi\\"

                ldLibs += libsDir + "libopencv_java3.so"
            }
        }
        create("armv7") {
            ndk.with {
                abiFilters += "armeabi-v7a"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath + "\\src\\main\\jniLibs\\armeabi-v7a\\"

                ldLibs += libsDir + "libopencv_java3.so"
            }
        }
        create("x86") {
            ndk.with {
                abiFilters += "x86"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath + "\\src\\main\\jniLibs\\x86\\"

                ldLibs += libsDir + "libopencv_java3.so"
            }
        }
        create("mips") {
            ndk.with {
                abiFilters += "mips"

                File curDir = file('./')
                curDir = file(curDir.absolutePath)
                String libsDir = curDir.absolutePath + "\\src\\main\\jniLibs\\mips\\"

                ldLibs += libsDir + "libopencv_java3.so"
            }
        }
        create("fat") {

        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile project(':libraries:opencv')
}

并将类路径从项目分级文件更改为此版本,并确保local.properties文件的ndk路径。

代码语言:javascript
运行
复制
classpath 'com.android.tools.build:gradle-experimental:0.2.0'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36906495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档