【问题标题】:AllJoyn Compilation leads to UnsatisfiedLinkErrorAllJoyn 编译导致 UnsatisfiedLinkError
【发布时间】:2016-11-06 04:41:30
【问题描述】:

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

我收到 UnsatisfiedLinkError 并且似乎尚未加载 alljoyn 库。 我唯一添加的是static { System.loadLibrary("alljoyn_java"); } 在 Main 活动的 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。可能是什么问题呢?感谢您的帮助!

【问题讨论】:

    标签: android alljoyn


    【解决方案1】:

    我按照here 的说明进行操作,只是将 jar 文件放在了app/libs/ 文件夹中。

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

    【讨论】:

      【解决方案2】:

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

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

      android {
         ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2016-09-22
        • 2014-10-22
        • 1970-01-01
        • 2015-06-29
        • 2015-11-07
        • 1970-01-01
        相关资源
        最近更新 更多