Android Studio创建一个不包含jniLibs的构建变体/类型?

Ell*_*nce 5 java android gradle android-studio android-gradle-plugin

我有一个使用本机JNI库的Android应用程序.我把它放入app/src/main/jniLibs/armeabi-v7a没有任何gradle配置,Android工作室愉快地将它捆绑到APK.

我有一个要求,即所有本机库都不能与某个发行版捆绑在一起.是否可以创建一个构建变体或构建类型,它只是排除所有本机库(甚至可能是名称.so).

本发行版中缺少本机库这一事实并不重要,因为它没有被使用.另一种方法是物理删除文件,运行构建,将它们放回去.然而,这是痛苦的并且容易出错.

Par*_*rth 2

从你的信息中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"
            }
        }

    }    
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,您将有多个构建变体,产品风格取决于flavorDimension.

prod风味将是一个构建变体或构建类型,仅排除所有本机库

主题来源 ndk、jniLibs、buildFlavours... :
-在 Android 上掌握“产品风味”
- ndk-with-android-studio
-多风味设置