gpt4 book ai didi

android - 如何使用 productflavors 和 jni 设置 Android 库模块

转载 作者:行者123 更新时间:2023-12-03 03:32:22 37 4
gpt4 key购买 nike

我正在尝试将 mupdf 作为带有预编译 .so 二进制文件的 android 库模块包含到我的项目中。

我有一个应用程序模块,其中包括我的库模块,就像这样。

dependencies {
compile project(':mupdf')
}

在我的 mupdf 库模块中,我有这样的编译二进制文件。
mupdf
- jniLibs
- arm64-v8a
libmupdf.so
- armeabi
libmupdf.so
- armeabi-v7a
libmupdf.so
- x86
libmupdf.so
- x86_64
libmupdf.so

我的 mupdf 库项目的 build.gradle:
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
publishNonDefault true
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
x64 {
ndk {
abiFilter "x86_64"
}
}
arm {
ndk {
abiFilter "armeabi"
}
}
arm_v7a {
ndk {
abiFilter "armeabi-v7a"
}
}
arm64_v8a {
ndk {
abiFilter "arm64-v8a"
}
}
fat
}
}
dependencies{
compile project(':core')
}

问题是我添加产品 flavor 后,我的应用程序无法编译,因为它没有从 mupdf 模块中找到任何 java 文件。
如果我从它编译的 gradle 文件中删除产品 flavor 部分。但它在运行时崩溃,因为它无法解析/加载 libmupdf 库。

最佳答案

您可以在没有产品 flavor 的情况下做到这一点。只需删除它们并调用 System.loadLibrary("mupdf")在启动时/在使用库之前的某个时间点。此调用将确定用于当前设备架构的 native 库。

关于android - 如何使用 productflavors 和 jni 设置 Android 库模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33396796/

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