1. ホーム
  2. android

[解決済み] 製品のフレーバーごとに異なる依存関係を定義する方法

2022-04-22 04:31:37

質問

私のアプリの1つをGradleに変換しており、新しいビルドフレーバー機能を使用して、有料と無料の広告ベースのフレーバーを持ちたいと考えています。

広告ベースバージョンだけをadmob SDKに依存させたいのですが。

私のビルドファイルは次のようなものです。

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')
}

フリー製品のフレーバーにおける依存関係が、両方のフレーバーの一般的なライブラリを含むメインのlibsフォルダにマージされた独自のlibsフォルダを持つように設定する方法はありますか?

可能であれば、このフォルダをどのように定義すればよいですか?

解決方法は?

フレーバー固有の依存関係を定義するには proCompile の代わりに compile を依存関係セクションに追加します。gradle propertiesを実行すると、自動的に作成された設定の概要が表示されます。

正しいビルドファイルはこのようなものです。

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}
apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 22
    }

    productFlavors {
        pro {
            packageName "de.janusz.journeyman.zinsrechner.pro"
        }
        free { }
    }
}

dependencies {
    compile 'com.android.support:support-v4:22.2.0'
    freeCompile 'com.google.android.gms:play-services-ads:7.5.0'
}