Я добавил библиотеку, перейдя на File->New->Import Module
. Модуль содержит несколько .so
файлов, и почему-то они не являются частью окончательного apk-файла, и приложение вылетает со следующим сообщением об ошибке.
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file
"/ данные / приложение / ком. == / base.apk"], nativeLibraryDirectories = [/ данные / приложение / ком. == / Библиотека / рука,
/data/app/com.==/base.apk!/lib/armeabi-v7a, / system / lib,
/ system / vendor / lib]]] не удалось найти "libAAA.so"
.so
файлы определены в следующей структуре в модуле библиотеки.
src ->main ->jniLibs ->arm64-v8a/armeabi/x86/ -> libAA.so/libBB.so
Библиотека Build.gradle
dependencies {
compile 'com.android.support:support-v4:27.1.1'
compile fileTree(dir: 'libs', include: '*.jar')
compile fileTree(dir: "$buildDir/native", include: 'native.jar')
}
task nativeLibsToJar(type: Zip, description: 'create a jar archive of the native libs (*.so files)') {
destinationDir file("$buildDir/native")
baseName 'native'
extension 'jar'
from fileTree(dir: 'libs', include: '**/*.so')
into 'lib/'
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
Настройка
include ':app', ':myLibrary'
Уровень приложения: build.gradle
android {
compileSdkVersion 27
defaultConfig {
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
productFlavors {
}
aaptOptions {
cruncherEnabled = false
}
dexOptions {
javaMaxHeapSize "4g" //specify the heap size for the dex process
preDexLibraries false
}
lintOptions {
abortOnError false
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':myLibrary')
}
repositories {
flatDir {
dirs 'libs'
}
}
Я также установил Native Libs Monitor , и он не показывает .so
файлы, определенные внутри библиотечного модуля.