1

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 を使用しています。これは私が欲しい唯一のものです。

4

1 に答える 1