gpt4 book ai didi

android - 如何将dependencies下的.so文件编译成.aar包?

转载 作者:太空狗 更新时间:2023-10-29 14:02:02 35 4
gpt4 key购买 nike

我正在开发某些 sdk 来为其他 android 应用程序提供一些功能。我的 sdk 项目依赖项的一个库项目有一些 .so lib 文件。使用gradle 将我的sdk 项目组装到aar 包时,我发现不包含.so 文件。如何将.so lib文件组装成aar包?

这里是sdk工程的build.gradle:

apply plugin: 'com.android.library'

android {
signingConfigs {
debug {
keyAlias 'debug.keystore'
keyPassword 'ssdebug'
storeFile file('release-tools/debug.keystore')
storePassword 'ssdebug'
}
release {
keyAlias 'release.keystore'
keyPassword 'dddd'
storeFile file('../seedstore/release.keystore')
storePassword 'dddd'
}
}
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 16
targetSdkVersion 22
signingConfig signingConfigs.release
}

sourceSets {
main {
jniLibs.srcDir file('jni/')
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.debug
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
productFlavors {
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.1'
compile project(':alisdk')
compile project(':jdsdk')
}

最佳答案

经过数千次尝试,我只是做了完全相同的事情,终于通过了。 -

  1. 我使用 android studio 创建了一个 android 库模块。
  2. 在本模块中,创建包名与jni接口(interface)完全匹配的xxx.java接口(interface)文件。
  3. /moduleName/src/main/创建文件夹“jniLibs”
  4. 将所有带有平台名称的 *.so 文件复制到 .../jniLibs 它看起来像: -/jniLibs/ ->/armeabi/->libxxx.so ->/x86/->libxxx.so ...
  5. 无需更改构建脚本,构建库模块
  6. .arr 文件应该位于/moduleName/build/outputs/xxx.aar
  7. 使用解压工具解压最终的xxx.aar,*.so文件应该在.aar/jni/下

//注释:我曾尝试将 *.so 文件添加到 xxx.jar 中,将其添加到模块的 libs 下,添加其编译依赖。 .aar 已将其打包到库中。但是,当用户使用这个.aar时,本地函数调用出现链接错误。

关于android - 如何将dependencies下的.so文件编译成.aar包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896733/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com