Estou convertendo um dos meus aplicativos para Gradle e gostaria de usar os novos recursos de sabor de compilação para ter um sabor pago e baseado em anúncio gratuito.
Quero que apenas a versão baseada em anúncio dependa do SDK da admob.
Meu arquivo de compilação fica assim:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
productFlavors {
Pro {
packageName "de.janusz.journeyman.zinsrechner.pro"
}
Free {
dependencies {
}
}
}
}
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile fileTree(dir: 'libs', include: '*.jar')
}
Existe uma maneira de configurar a dependência no sabor do produto gratuito para ter sua própria pasta libs que é mesclada com a pasta libs principal que contém bibliotecas gerais para ambos os tipos?
Se isso for possível, como eu definiria esta pasta?
android
gradle
android-build
Janusz
fonte
fonte
Respostas:
Para definir uma dependência específica de sabor, você pode usar em
proCompile
vez decompile
na sua seção de dependência. Ao executar propriedades gradle, você obtém uma visão geral das configurações criadas automaticamente.O arquivo de compilação correto se parece com isso:
fonte
Error:(28, 0) Build script error, unsupported Gradle DSL method found: 'glassCompile()'!
(O sabor que eu estou tentando adicionar uma dependência para é "vidro".)dependencies
bloco abaixo deleandroid
. Quão intuitivo.xxxCompile
fechamentos gerados por Gradle não funcionarão se o nome do sabor começar com uma letra maiúscula.Avanço rápido para meados de 2018. Você precisará adicionar
flavorDimensions
.Além disso, observe:
fonte
Você precisa adicionar manualmente a configuração para cada sabor. Exemplo
fonte
Edit: Eu recomendo usar uma das outras técnicas!
Uma alternativa à resposta aceita é esta:
fonte
Simples:
ou apenas:
fonte