使用productFlavors调试和发布软件包

时间:2019-05-28 05:38:05

标签: android build.gradle dagger android-build-flavors

我在productFlavors文件中创建了2个build.gradle

productFlavors {
        flavorA {
            dimension "default"
        }

        flavorB {
            dimension "default"
        }
    }

还有2个buildTypes debugrelease

因此gradle将Build Variants创建为flavorADebugflavorAReleaseflavorBDebugflavorBRelease

我想在FlavorDIdebug包中创建一个release文件,以使debug/FlavorDI对于flavorADebugflavorBDebug是通用的,并且release/FlavorDI对于flavorAReleaseflavorBRelease是通用的。

但是当我在FlavorDI中包含AppComponent时,该包将无法识别。

@Singleton
@Component(modules = [
    AppModule::class,
    ActivityModule::class,
    FragmentModule::class,
    ViewModelModule::class,
    NetModule::class,
    FlavourDI::class,   // Could not import FlavourDI
    AndroidSupportInjectionModule::class,
    AndroidInjectionModule::class
])

我应该如何精确创建FlavorDI文件,以使debug/FlavorDIflavorADebugflavorBDebug变体是通用的,而release/FlavorDI对{{ 1}}和flavorARelease的变体?

enter image description here

1 个答案:

答案 0 :(得分:0)

确保使用正确的构建版本。另外,您可能需要使用flavorDimension。这是我在build.gradle中进行类似设置的条件:

flavorDimensions 'mobile'

productFlavors {
    internal {
        dimension = 'mobile'
        applicationId = 'com.labs.biletskiy.android.internal'
    }

    production {
        dimension = 'mobile'
        applicationId 'com.labs.biletskiy.android.production'
    }

}