Android Studio 创建不包括 jniLibs 的构建变体/类型?
Android Studio create a build variant / type excluding jniLibs?
我有一个使用本机 JNI 库的 Android 应用程序。我在没有任何 gradle 配置的情况下将它放入 app/src/main/jniLibs/armeabi-v7a
,并且 Android studio 很乐意将它捆绑到 APK 中。
我有一个要求,所有本机库不能与特定发行版捆绑在一起。是否可以创建一个简单地排除所有本机库的构建变体或构建类型(甚至可以按名称.so
)。
本发行版中缺少本机库并不重要,因为它未被使用。另一种方法是物理删除文件,运行 构建,然后将它们放回去。然而,这是痛苦的并且容易出错。
从您的build.gradle
,我们或许能够准确地知道要做什么。
我使用 productFlavours
结合 flavorDimensions
来实现可能包含也可能不包含 jni 库的构建。
据我了解,要点是:productFlavors
使您能够拥有 x、y... 类型的 n 个变体,添加 flavorDimensions
将使您能够拥有 xy 的 n 个变体类型。
例如。里面 build.gradle
,
flavorDimensions "abi", "version" //this is what can help you build with/w/o jni libraries
productFlavors {
devel {
flavorDimension "abi" //keep a dimension common with arm, armv7
applicationId "com.packagename.dev"
}
prod {
flavorDimension "version"
// this would be your build w/o the ndk support then
applicationId "com.packageName"
}
armv7 {
ndk {
flavorDimension "abi"
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
flavorDimension "abi"
abiFilter "armeabi"
}
}
}
如您所见,您将拥有多个构建变体,产品风格取决于 flavorDimension
。
prod
flavor 是一种构建变体或构建类型,它只排除所有本机库
ndk、jniLibs、buildFlavours 主题的来源...:
- Mastering "Product Flavors" on Android
- ndk-with-android-studio
- multi flavor setup
我有一个使用本机 JNI 库的 Android 应用程序。我在没有任何 gradle 配置的情况下将它放入 app/src/main/jniLibs/armeabi-v7a
,并且 Android studio 很乐意将它捆绑到 APK 中。
我有一个要求,所有本机库不能与特定发行版捆绑在一起。是否可以创建一个简单地排除所有本机库的构建变体或构建类型(甚至可以按名称.so
)。
本发行版中缺少本机库并不重要,因为它未被使用。另一种方法是物理删除文件,运行 构建,然后将它们放回去。然而,这是痛苦的并且容易出错。
从您的build.gradle
,我们或许能够准确地知道要做什么。
我使用 productFlavours
结合 flavorDimensions
来实现可能包含也可能不包含 jni 库的构建。
据我了解,要点是:productFlavors
使您能够拥有 x、y... 类型的 n 个变体,添加 flavorDimensions
将使您能够拥有 xy 的 n 个变体类型。
例如。里面 build.gradle
,
flavorDimensions "abi", "version" //this is what can help you build with/w/o jni libraries
productFlavors {
devel {
flavorDimension "abi" //keep a dimension common with arm, armv7
applicationId "com.packagename.dev"
}
prod {
flavorDimension "version"
// this would be your build w/o the ndk support then
applicationId "com.packageName"
}
armv7 {
ndk {
flavorDimension "abi"
abiFilter "armeabi-v7a"
}
}
arm {
ndk {
flavorDimension "abi"
abiFilter "armeabi"
}
}
}
如您所见,您将拥有多个构建变体,产品风格取决于 flavorDimension
。
prod
flavor 是一种构建变体或构建类型,它只排除所有本机库
ndk、jniLibs、buildFlavours 主题的来源...:
- Mastering "Product Flavors" on Android
- ndk-with-android-studio
- multi flavor setup