Android Studio产品口味只识别了两种口味中的一种。

11

我正在创建一个应用程序,它应该有两种版本,净球和足球。当我按照https://developer.android.com/tools/building/configuring-gradle.html设置我的项目时,只有一种版本被识别,即净球版本,而另一种版本的包名,即足球版本,没有被识别。

图1

图2

这是我的build.gradle文件

apply plugin: 'com.android.application'

 android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "net.brawtasports.brawtasportsgps"
    minSdkVersion 11
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

productFlavors {
    netball {
        applicationId "net.brawtasports.brawtasportsgps.netball"
        versionName "1.0"
    }

    football {
        applicationId "net.brawtasports.brawtasportsgps.football"
        versionName "1.0"
    }

}

sourceSets {
    main {
        java.srcDirs = ['src/main/java']
        res.srcDirs = ['src/main/res']
    }
    football {
        java.srcDirs = ['src/football/java']
        res.srcDirs = ['src/football/res']
    }
    netball {
        java.srcDirs = ['src/netball/java']
        res.srcDirs = ['src/netball/res']
    }

  }

}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.vstechlab.easyfonts:easyfonts:1.0.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.picasso:picasso:2.5.2'
}
我意识到它只能识别productFlavors中的第一项,即netball。如果我将football放在第一位,它将识别为football而不是netball。这是什么问题???
1个回答

23

您还需要在IDE窗口左侧的Build variants面板中选择当前的版本。


主要的 sourceSet 是否也需要设置?还是可选的? - Castell James
1
@CastellJames 如果您使用默认位置来存储flavour文件(就像您的情况一样),那么您根本不需要sourceSets,因为AS通常会自动找到它们。如果您将任何一个flavour文件移动到非默认位置,则需要设置新位置。 - AndroidEx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接