[解決済み] Android Gradleでマルチフレーバーライブラリに基づくマルチフレーバーアプリを作成する。
質問
私のアプリは、いくつかの市場のアプリ内課金システム用にいくつかのフレーバーを持っています。
私は、すべてのプロジェクトのベース コードを共有する 1 つのライブラリを持っています。そこで私は、これらの支払いシステムを製品のフレーバーとしてこのライブラリに追加することにしました。
問題は、アンドロイドライブラリにプロダクトフレーバーを持たせることができるかということです。
もしそうなら、どのようにしてアプリのそれぞれのフレーバーに異なるフレーバーを含めることができますか?
私はたくさん検索しましたが、このシナリオについて何も見つけることができませんでした。私が見つけた唯一の近いものは、次のとおりです。 http://tools.android.com/tech-docs/new-build-system/user-guide :
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
設定をいろいろ変えてみたのですが、うまくいきませんでした
android studio 0.8.2を使っています。
どのように解決するのですか?
ようやくこの方法を見つけましたので、同じ問題に直面している他の人のためにここで説明します。
重要なのは、build.gradleでpublishNonDefaultをtrueに設定し、ユーザーガイドで提案されているように依存関係を定義する必要があることです。
プロジェクト全体はこのような感じになります。
build.gradleをライブラリ化します。
apply plugin: 'com.android.library'
android {
....
publishNonDefault true
productFlavors {
market1 {}
market2 {}
}
}
プロジェクトのbuild.gradleです。
apply plugin: 'com.android.application'
android {
....
productFlavors {
market1 {}
market2 {}
}
}
dependencies {
....
market1Compile project(path: ':lib', configuration: 'market1Release')
market2Compile project(path: ':lib', configuration: 'market2Release')
}
これで、アプリのフレーバーとビルドバリアントパネルを選択すると、それに応じてライブラリが選択され、すべてのビルドと実行は選択されたフレーバーに基づいて行われます。
ライブラリに基づく複数のアプリモジュールがある場合、Android StudioはVariant選択の衝突について文句を言いますが、大丈夫です、無視してください。
関連
-
[解決済み] Android StudioのGradleとは?
-
[解決済み] Gradle for Androidを使用して、外部のaarパッケージを手動でインクルードする方法
-
[解決済み】Android Studioです。jarをライブラリとして追加しますか?
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] プログラム的に電話をかけるには?
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] Studio 3.4 をアップデートしたら、引数の leftShift() メソッドが見つかりませんでした。
-
[解決済み] Android: xml リソースからの整数値
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studioが突然シンボルを解決できなくなった。
-
[解決済み] 製品のフレーバーごとに異なる依存関係を定義する方法
-
[解決済み] Android studio 3.0: app@dexOptions/compileClasspath' の依存関係を解決できません。プロジェクト :animators を解決できませんでした。
-
[解決済み] SDカードからファイルを削除する方法を教えてください。
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] アンドロイドでシェイクを検出するには?
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] 実行に失敗しました app:processDebugResources Android Studio