如何使用或不使用其他样式的本机库?

时间:2019-07-10 09:20:54

标签: android-gradle

我有个安卓项目,在配制项目变体时,某些Flavor需要原生库,某些不需要。 我知道如何为不同的Flavor配置不同的原生库,但不知道如何让某些风味使用原生库而另一些不使用原生库。 请问我该怎么配置? 我有一个Android项目。在配置项目变体时,有些样式需要本机库,而有些则不需要。 我知道如何为不同的样式配置不同的本机库,但是我不知道如何使某些样式使用本机库,而另一些则不使用本机库。 我该如何配置?

在build.gradle中,我是如下配置的: 在build.gradle中,我将其配置如下:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "lhl.wenshi"
        minSdkVersion 18
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
            }
        }
        ndk {
            // Specifies the ABI configurations of your native
            // libraries Gradle should build and package with your APK.
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    flavorDimensions 'hardware'
    productFlavors {
        no_hardware {
            dimension = 'hardware'
            applicationIdSuffix = '.nohw'
            externalNativeBuild {
                cmake {
                    targets // How to not use the native library?
                }
            }
        }
        hardware {
            dimension = 'hardware'
            externalNativeBuild {
                cmake {
                    targets "nalib"
                }
            }
        }
    }
    dataBinding {
        enabled = true
    }
    externalNativeBuild {
        cmake {
            path file('CMakeLists.txt')
        }
    }
}

我是用cmake编译的原生代码,库的名字叫做nalib,我不想在no_hardware这个flavor中使用原生库,请问我该怎么做?谷歌官方赋予的示例让不同的flavor使用不同的原生库,但如何让某些flavor不使用原生库呢? 我使用cmake来编译本机代码。该库的名称称为nalib。我不想使用no_hardware风格的本机库。我该怎么办? Google给出的示例正式允许不同的样式使用不同的本机库,但是如何使某些样式不使用本机库?

1 个答案:

答案 0 :(得分:0)

依赖项{编译'com.android.support:multidex:1.0.3'}