Saya mengonversi salah satu aplikasi saya ke Gradle dan ingin menggunakan fitur rasa baru untuk mendapatkan rasa berbayar dan berbasis iklan gratis.
Saya hanya menginginkan versi berbasis iklan untuk bergantung pada AdMob SDK.
File build saya terlihat seperti ini:
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')
}
Apakah ada cara untuk mengkonfigurasi ketergantungan pada rasa produk gratis untuk memiliki folder lib sendiri yang digabungkan dengan folder lib utama yang berisi perpustakaan umum untuk kedua rasa?
Jika ini memungkinkan, bagaimana saya mendefinisikan folder ini?
android
gradle
android-build
Janusz
sumber
sumber
Jawaban:
Untuk menentukan ketergantungan rasa khusus yang dapat Anda gunakan
proCompile
alih-alihcompile
di bagian ketergantungan Anda. Ketika Anda menjalankan properti gradle Anda mendapatkan gambaran umum tentang konfigurasi yang dibuat secara otomatis.File build yang benar terlihat seperti ini:
sumber
Error:(28, 0) Build script error, unsupported Gradle DSL method found: 'glassCompile()'!
(Rasa yang saya coba tambahkan ketergantungan adalah "gelas".)dependencies
blok di bawahandroid
blok. Sangat intuitif.xxxCompile
penutupan yang dihasilkan Gradle tidak akan berfungsi jika nama rasa dimulai dengan huruf kapital.Maju cepat ke pertengahan 2018. Anda harus menambahkan
flavorDimensions
.Juga perhatikan:
sumber
Anda perlu menambahkan konfigurasi secara manual untuk setiap rasa. Contoh
sumber
Sunting: Saya sarankan menggunakan salah satu teknik lain!
Alternatif untuk jawaban yang diterima adalah ini:
sumber
Sederhana:
atau hanya:
sumber