問題タブ [android-flavors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
23848 参照

android - Android Studio ビルド フレーバー - さまざまなフレーバーで同じソース ファイルを使用する方法

Androidスタジオでアプリのデモフレーバーを作成する必要があります。私のアプリレベルのgradleファイルでは、demoと呼ばれる別のフレーバーと、もちろんフルのデフォルトフレーバーを作成しました。次のようになります。

これは、デモフレーバーディレクトリを作成したプロジェクト構造の画像です。

ここに画像の説明を入力

今問題に。Hello.java という 2 つのクラスがあります。どちらもそれぞれのフレーバーにあり、異なるものを印刷します。両方のファイルを表示します。

そして、これが他のHelloです:

最初の hello.java にパッケージがないことに注意してください。パッケージがあったとしても、IDE はコンパイルしません。この写真を見てください:

ここに画像の説明を入力

最後に、mainActivity.java を見て、ビルド バリアントを切り替えると、"im from main" のトーストのみが表示されますが、demoDebug ビルド バリアントを使用する場合は、"im from demo" を出力する必要があることがわかります。バリアントを demoDebug にビルドしても、「im from main」と出力されます。

アップデート

stackoverflow から次のように述べています。

2 つのフレーバーで同じクラスの異なるバージョンが必要な場合は、両方のフレーバーで作成する必要があります。

そして、コードで次のsrc/main/javaことができます。

選択したフレーバーに応じて、正しいバージョンのcom.foo.Aが使用されます。

これが Hello クラスで実現したいことです

0 投票する
1 に答える
244 参照

android - Android Studio 1.5.1、Gradle 2.8、モバイル & ウェア、無料/有料フレーバー

私は途方に暮れています。AS 1.5.1 と Gradle 2.8 を使用して、モバイル モジュールとウェア モジュールを使用しています。モバイルとウェアのフレーバーのデバッグ バージョンを選択したとき、それぞれのデバイスで取得するには、それぞれを手動でコンパイル/実行する必要があることを理解しています。そして、これは問題なく発生します。アプリなどをデバッグ/実行します。

ただし、モバイルとウェアのフレーバーをリリースするために、モバイル/ウェアの build.gradle ファイルにsigningConfigsセクションを作成していない場合、ASはダイアログボックスでそうするように促し、その下部に「修正」ボタン。まず、keyAlias、keyPassword、storeFile、および storePassword を追加する wear モジュールを使用してこれを行います。この同じダイアログを使用して、signingConfig を持つ唯一のリリースの buildType を選択します。そのダイアログで [OK] をクリックすると、以前のダイアログの下部に、以前は [FIX] ボタンがあった場所にまだ gradle エラーがあるという文言が表示されます。モバイルgradleファイルを使用して同じ手順を実行すると、ダイアログにもまだgradleエラーがあることが示されます。リリースでの着用の結果のビルド/実行では、モバイル ビルドに含めるために android_wear_micro_apk.apk が作成されません。モバイル モジュールがビルドされると、その中に wear apk はありません。私のアプリケーション全体 (モバイル/ウェア) は、元々、私が AS に手動でマージしたプロジェクトの Eclipse セット (実際には Play ストアで動作していました) でした。

モバイルとウェアを組み合わせたまったく新しい AS プロジェクトを作成してみました。リリースを実行したときも、署名の概念を作成するよう促されました。ただし、それにより、wear のコンパイル中に android_wear_micro_apk.apk が作成されます。さらに、モバイル アプリにはウェアの apk が含まれています。モバイル デバッグ APK とリリース APK のサイズは異なり、リリース APK の方が大きくなっています。「android_wear_micro_apk.apk」ファイルについて私が知る唯一の方法は、この新しい/簡素化されたテスト プロジェクトによるものです。それ以外の場合、私のオリジナルは接着剤を提供しません。

これがモバイルbuild.gradleです

これが摩耗build.gradleです

0 投票する
5 に答える
2272 参照

android - フレーバーのメニュー項目を非表示または追加する方法は?

fullと の 3 つの異なるフレーバーを持つアプリがpart1ありpart2ます。

フレーバーごとにパッケージ名が異なるため、異なるアプリとして出荷できます。

part1というメニュー項目だけを取得したいのですReload。他の 2 つのフレーバーには、このメニュー項目はありません。これは可能ですか?

メニューリソースで次のことを試しました:

forは次のとおりmain_activity.xmlです。part1

そしてmain_activity.xml、次のmainとおりです。

ただし、 以外のビルド バリアントでアプリをビルドすると、メニュー選択に対応する必要がある場所でpart1コンパイル エラーが発生します。MainActivity

その理由は明らかです。しかし、さまざまなビルド フレーバーに合わせてメニューをカスタマイズするための解決策について何か提案はありますか?

0 投票する
1 に答える
380 参照

android - 「プロバイダーの競合」メッセージをプログラムで防止する方法

PlayStoreでもAndroidStudioでも「重複プロバイダー」エラーメッセージを表示せずに、1つのデバイスにさまざまなフレーバーのさまざまなビルドをインストールする方法を誰か教えてもらえますか?

私のアプリには国ごとに異なるフレーバーがあり、別のアプリをインストールする前に常にアプリをアンインストールするのは面倒です。

私は試した:

そして私の AndroidManifest に追加しました:

わたしの

鬼ごっこ。これは私の問題を解決しません。

私は ContentProvider を使用しないので、プロジェクトに Stub ContentProvider クラスを追加して、内部で android:authorities="${providerAuthority}" を宣言しようとしました

スタブ ContentProvider の名前を含むタグ --> 成功しません。他のアイデアや修正についてはとてもうれしいです。

アップデート:

デバイスにアプリをインストールしようとしたときに Android Studio から表示されるエラー メッセージ。

これは、Android Studio から表示されるエラー メッセージです。

0 投票する
1 に答える
15 参照

android - Android フレーバーの複数の直交軸

現在、フレーバーを使用して、顧客ごとにアプリをカスタマイズしています。

私は読んだ: Android Studio Flavor of a Flavor

さまざまなユーザー ロールに合わせてアプリをカスタマイズする必要もあります。

これらのカスタマイズは直交しており、アプリはすべての顧客/役割の組み合わせに対して構築可能である必要があります。

これを達成するための最良の方法は何ですか?

ミックスインのように、複数のフレーバーを適用できますか?

(客・役の組み合わせごとにフレーバーを作るのはとてももったいないです。)

0 投票する
0 に答える
219 参照

android - Android で 1 つの製品フレーバーに対してのみ Google アナリティクスを有効にする方法

同じ基本コードに基づいて、多くのフレーバー (さまざまな Google アカウントで公開されたさまざまな applicationIds を持つさまざまなアプリ) があるプロジェクトがあります。私のフレーバーの1つにGoogleアナリティクスを追加したいまで、すべてがうまく機能していたので、このチュートリアルhttps://developers.google.com/analytics/devguides/collection/android/v4/#set-up-your-projectを放棄しましたファイルを取得google-services.jsonしてフレーバー固有のディレクトリに配置すると、機能します。

しかし、残念なことに、ここに問題があります。残りのフレーバーは、それらの google-services.json が見つからないため、コンパイルされません。ここにgradleの失敗したログがありますFile google-services.json is missing. The Google Services Plugin cannot function without it.

ここで質問があります: 1 つのフレーバーに対してのみ Google アナリティクスを有効にするにはどうすればよいですか?

どんな助けでも大歓迎です

EDIT 1ここに私のgradleファイルがあります

0 投票する
1 に答える
797 参照

android - Androidで異なるフレーバーを組み合わせる方法は?

Android でさまざまなフレーバーのアプリケーションを開発しました。Google Play ストアでこれら 2 つのフレーバーを更新しました。今私が望むのは、これらの 2 つのフレーバーを組み合わせて単一の apk を構築することです。組み合わせたフレーバー apk がこれら 2 つの apk をプレイ ストアで更新するようにします。

私の質問は - これは可能ですか、単一の組み合わせたフレーバー apk で異なるフレーバー apk を更新することです。

0 投票する
2 に答える
134 参照

android - FLAVOR: Android Studio からの実行が失敗する - デバイスからの実行が機能する

activity異なるフレーバーで同じ名前を持ち、各フレーバーに適した名前をインストールしようとしています。

build.gradle :

AndroidMANifest.xml :

そして、すべてのflavorX.javaは次のようになります:

今... ASの「緑色の再生ボタン」を押して
実行するすべてのフレーバーについて、これらのことが起こります: 1.ビルド+コンパイルが正常に終了します。2.ビュー タブで、次のメッセージが表示されます。build variant

Run

3.アプリは正しいアイコンと名前でデバイスにインストールされています。
4.インストールされたばかりの (= デバイスから実行されている) アイコンを押すと、すべて問題なく、アプリは要求どおりに動作します。インストールごとに独自のフレーバーがあります。

これは、デバッグと流暢な開発にとってひどいことです...
AS を介して各フレーバーをそのバリアントで実行できるようにするにはどうすればよいですか??

ありがとう :)

0 投票する
1 に答える
589 参照

android - フレーバーを使用したさまざまな API レベルの複数の APK

さまざまな API レベルの複数の APK を作成するための Google の公式ドキュメントに従いました。(異なる APK を使用することはお勧めできませんが、特定のケースではそれを使用する必要があります)。

私の場合、2 つの APK の唯一の違いは AndroidManifest.xml ファイルの内容だけです。2 つの異なるアプリ モジュール間で共有ライブラリを作成することを推奨する公式ドキュメントを読みながら、Gradle のビルド設定で異なるフレーバーを使用して同じことを実現できるかどうか疑問に思いました。フレーバーごとに異なる AndroidManifest.xml ファイルを指定し、したがって、異なるマニフェストを持つ 2 つの APK を生成します (アイデアはこの投稿から来ました)。

2 つのフレーバーを作成する方が (時間とメンテナンスの点で) はるかに簡単であり、必要なのは 2 つの異なるマニフェスト ファイルだけなので、これは 2 つの異なるアプリ モジュール間で共有される共通ライブラリ モジュールを提案するよりも優れたオプションではないでしょうか?