[英]UnsatisfiedLinkError: findLibrary returned null
我正在編寫Google Glass應用程序。 我使用的第三方庫包含一些資產(以及將它們放置在資產/目錄中的說明),一些jar(以及將它們放置在libs / dir中的說明)和一個.so(以及放置它們的說明)它在libs / armenabi-v7a /中)。
當我運行該應用程序時,出現UnsatisfiedLinkError,它似乎未包含.so。 解壓縮apk證實了這一點,我在那里看不到.so。
java.lang.UnsatisfiedLinkError: Couldn't load nameofsofile_jni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.package.demo-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.package.demo-1, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:529)
at <Calls inside the external library>
我的build.gradle:
apply plugin: 'com.android.application'
repositories {
jcenter()
flatDir {
dirs 'prebuilt-libs'
}
}
android {
compileSdkVersion "Google Inc.:Glass Development Kit Preview:19"
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.package.demo"
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: new File(buildDir, 'libs'), include: '*.jar')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('src/main/libs/jarone.jar')
compile files('src/main/libs/jartwo.jar')
compile files('src/main/libs/jarthree.jar')
}
如何獲取包含.so的內容?
在Android Studio中,默認情況下,.so文件應放置在src/main/jniLibs/
而不是src/main/libs/
。 我看不到您要更改此設置的原因,但是可以將以下代碼添加到build.gradle
文件的android{}
部分中。
sourceSets.main {
jniLibs.srcDir 'src/main/libs'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.