2 日間、Android アプリで 2 つの異なるフレーバーを作成しようとしています。アプリを Eclipse から Android スタジオにインポートしました。別の 2 つの res フォルダー (res_testing と res_distribution) と別の 2 つの src フォルダー (src_testing と src_distribution) を作成しました。これは私のbuild.gradleがどのように見えるかです:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
task wrapper(type: Wrapper) {
gradleVersion = '1.6'
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
productFlavors {
flavor1 {
packageName = 'com.comp.4u.testing'
}
flavor2 {
packageName = 'com.comp.4u'
}
}
android.sourceSets.flavor1{
java.srcDirs = ['src_testing']
resources.srcDirs = ['res_testing']
}
android.sourceSets.flavor2{
java.srcDirs = ['src_distribution']
resources.srcDirs = ['res_distribution']
}
instrumentTest.setRoot('tests')
}
}
しかし、ビルドバリアントを変更すると、アプリは正常にビルドされますが、メインの src フォルダーと同じ DataManager ファイルを使用します (ただし、名前に応じて 2 つの異なるパッケージを取得します)。
それは私を夢中にさせます!! 100 のフォーラムと投稿を調べましたが、うまくいきませんでした。
各 DataManager は、サーバーに対して異なる URL を使用しています。これは私が欲しい唯一のものです。