AllJoyn编译导致UnsatisfiedLinkError

时间:2016-11-05 14:18:59

标签: android alljoyn

每当我将项目构建到手机(Android 4.4.2)时都会出现问题。

我得到UnsatisfiedLinkError,似乎尚未加载alljoyn库。 我唯一添加的是static { System.loadLibrary("alljoyn_java"); } 在主要活动的onCreate()方法之前。

以下是build.gradle文件供参考:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "secret.secret.secret"
        minSdkVersion 19
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('src/main/java/jniLibs/alljoyn.jar')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    testCompile 'junit:junit:4.12'
}

Project Directory Android Studio version

也许我正在使用错误的android sdk。可能是什么问题呢?谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

我按照说明here,除了我将jar文件放在app/libs/文件夹中。

我在这里看到的一个好处是jar文件可以在任何地方,但.so文件必须位于app/src/main/jniLibs/armeabi/。我不知道背后的原因 - 有人可以解释原因吗?

答案 1 :(得分:0)

app/src/main/jniLibs/armeabi/位置是默认位置。您可以指定自定义位置添加:

sourceSets.main {
        jniLibs.srcDir 'your/custom/location' 
}

android {
   ...
}