Android - 运行应用程序时加载JNI库时出错

时间:2015-11-22 23:49:19

标签: java android java-native-interface emotion affdex-sdk

downloaded Affdex sdk,我正试图让CameraDetectorDemo在我的nexus 5上运行。

我在尝试运行该应用程序时遇到以下异常。

Connection failed: Access denied for user 'dbusername'@'www.mydomain.com' (using password: YES)

1 个答案:

答案 0 :(得分:0)

这很可能是由于项目配置方式错误导致库文件导致的。

如果要在Gradle中构建项目,则需要遵循此处所示的类似结构:

AffdexGradleProject
`-- app
|-- jniLibs
|   `-- armeabi-v7a
|       `-- libaffdexface_jni.so
|-- libs
|   |-- Affdex-sdk.jar
|   `-- Affdex-sdk-javadoc.jar
`-- src
|-- main
|   |-- assets
|   |   `-- Affdex
|   |       |-- Classifiers.v_9
|   |       |   `-- ...
|   |       `-- Affectiva.licence
|   |-- java
|   |   `-- ...
|   |-- res
|   |   `-- ...
|   `-- AndroidManifest.xml
|-- app.iml
`-- build.gradle

只要您的项目配置正确以引用它们,libs和jniLibs文件夹的位置就不重要了。

以下是build.gradle的片段,它引用了上面的libs和jniLibs的位置以进行比较:

android {
    ...

    sourceSets {
        main {
            jniLibs.srcDirs = ['jniLibs']
            jni.srcDirs = [] //disable automatic ndk-build
        }
    }
    ndk {
        abiFilters “armeabi-v7a”, ... (what ever other architecture types additional libraries are using)
    }
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.squareup.dagger:dagger:1.2.2'
    compile 'javax.inject:javax.inject:1'
    compile files('libs/Affdex-sdk.jar')
    compile files('libs/Affdex-sdk-javadoc.jar')
}


相关问题