Ich konvertiere eine meiner Apps in Gradle und möchte die neuen Build-Flavour-Funktionen verwenden, um eine kostenpflichtige und kostenlose werbebasierte Flavour zu erhalten.
Ich möchte, dass nur die werbebasierte Version vom Admob SDK abhängt.
Meine Build-Datei sieht folgendermaßen aus:
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')
}
Gibt es eine Möglichkeit, die Abhängigkeit in der kostenlosen Produktversion so zu konfigurieren, dass ein eigener libs-Ordner mit dem Hauptbibliotheksordner zusammengeführt wird, der allgemeine Bibliotheken für beide Varianten enthält?
Wenn dies möglich ist, wie würde ich diesen Ordner definieren?
android
gradle
android-build
Janusz
quelle
quelle
Antworten:
Um eine geschmacksspezifische Abhängigkeit zu definieren, können Sie diese
proCompile
anstellecompile
Ihres Abhängigkeitsabschnitts verwenden. Wenn Sie Gradle-Eigenschaften ausführen, erhalten Sie einen Überblick über automatisch erstellte Konfigurationen.Die richtige Build-Datei sieht folgendermaßen aus:
quelle
Error:(28, 0) Build script error, unsupported Gradle DSL method found: 'glassCompile()'!
(Der Geschmack, dem ich eine Abhängigkeit hinzufügendependencies
Block unter denandroid
Block bewegen . Wie intuitiv.xxxCompile
Gradle generierten Verschlüsse nicht funktionieren, wenn der Geschmacksname mit einem Großbuchstaben beginnt.Schneller Vorlauf bis Mitte 2018. Sie müssen hinzufügen
flavorDimensions
.Beachten Sie auch:
quelle
Sie müssen die Konfiguration für jede Variante manuell hinzufügen. Beispiel
quelle
Bearbeiten: Ich empfehle eine der anderen Techniken!
Eine Alternative zur akzeptierten Antwort ist folgende:
quelle
Einfach:
oder nur:
quelle