0
我有一些外部共享庫需要添加一個jar文件。文件結構如下:如何通過gradle 2.2.1將共享庫添加到我的jar中?
project
|---lib
|---armeabi-v7a/xxx.so
|---x86/xxx.so
|---libs
|---xxx.jar
|---xxx.jar
我的build.gradle是:
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
jniLibs.srcDirs = ['lib']
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
}
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('../../releases/')
include('classes.jar')
rename ('classes.jar', 'myjar.jar')
}
makeJar.dependsOn(clearJar, build)
我用命令來查看罐子:
$ jar tf myjar.jar
...
armeabi-v7a/
armeabi-v7a/xxx.so
x86/
x86/xxx.so
但它會通過引起崩潰:
java.lang.UnsatisfiedLinkError: Couldn't load xxx from loader dalvik.system.PathClassLoader
如何正確地做到這一點?
不可以。該jar文件可以在運行時找到,但不能。問題是共享庫不在正確的文件夾中,因此係統找不到它們。 –