[解決済み] Gradleを使ったAndroidの開発 if caseのようなコードでフレーバーをビルドする
2023-03-26 05:36:48
質問
ビルドフレーバーで作業しようとしています。私のbuild.gradleでは、2つのフレーバー、通常のフレーバーと管理フレーバーを定義しています。
基本的に、adminフレーバーはメインアクティビティに追加ボタンがあります。
私は、異なるフレーバーのために異なるパッケージ/クラスを定義できることを理解しています。しかし、フレーバーに応じてコードの一部を追加/削除するための一種のifケースを作成する方法はありますか?
基本的に、私は2つのバージョンのActivityを必要とします。しかし、私は2つの全く異なるバージョンのアクティビティを必要とせず、それらを維持します。
そこで、私のアクティビティでは、次のことを行いたいと思います。
=> gradleはflavorが'admin'であるかどうかをチェックします。
=> もしそうなら、ボタンに次のコードを追加します。
これは可能でしょうか?それとも、2つの異なる物理的な活動が必要で、そのため、後から機能を追加するときに両方を維持することになるのでしょうか。
どのように解決するのですか?
BuildConfig.FLAVOR
を使用すると、製品の風味を組み合わせることができます。
そのため、1つのフレーバーディメンジョンしかない場合
productFlavors {
normal {
}
admin {
}
}
あとは確認するだけです。
if (BuildConfig.FLAVOR.equals("admin")) {
...
}
しかし、複数のフレーバーディメンジョンがある場合
flavorDimensions "access", "color"
productFlavors {
normal {
dimension "access"
}
admin {
dimension "access"
}
red {
dimension "color"
}
blue {
dimension "color"
}
}
もあります。
BuildConfig.FLAVOR_access
と
BuildConfig.FLAVOR_color
のフィールドがあるので、このようにチェックする必要があります。
if (BuildConfig.FLAVOR_access.equals("admin")) {
...
}
そして
BuildConfig.FLAVOR
は完全なフレーバー名を含んでいます。例えば
adminBlue
.
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Android StudioのGradleとは?
-
[解決済み] Gradle for Androidを使用して、外部のaarパッケージを手動でインクルードする方法
-
[解決済み] AsyncTaskを複数回実行する
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] proguard hell - 参照されているクラスが見つかりません。
-
[解決済み] 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の連絡先リストを呼び出すには?
-
[解決済み] Android Debug Bridgeでアプリケーションのインストール時にINSTALL_FAILED_VERSION_DOWNGRADEを無視する方法はありますか?
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] Androidアプリケーションのヒープサイズを大きくするには?
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] ViewPager2でスワイプを無効にするには?