Android Studioで、一つのプロジェクトから複数のアプリを作成する[Android]

Huawei app gallery にアプリをリリースする為、管理を簡素化する必要性がでてきた。

build.gradle

productFlavors {
normal {
applicationId "com.sample.xxx"

}

huawei {
applicationId "com.sample.xxx.huawei"
}
}

エラー発生

ERROR: All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

最近中国語ばかりで英語はGoogle翻訳orDeepl翻訳かけないと全然わからなくなってしまった。

エラー:すべてのフレーバーは、名前付きのフレーバーディメンションに属している必要があります。 詳しくは、https://d.android.com/r/tools/flavorDimensions-missing-error-message.htmlをご覧ください。

flavorDimensions “default”を追加でひとまず解決。

build.gradle

android {
compileSdkVersion 28
flavorDimensions "default"
defaultConfig {

デバッグ時はこれでコンパイルできる。

app/src に2つフォルダーを作る。

normal/res/values/vars.xml

huawei/res/values/vars.xml

の2つを作成。

normal/res/values/vars.xml 中身

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <bool name="is_huawei">false</bool>

</resources>

huawei/res/values/vars.xml 中身

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <bool name="is_huawei">true</bool>

</resources>

java内で処理分けするときは下記のようにできる。
私はhuawei app galleryではひとまずアプリ内課金は使用せずにリリースしたく(Play Storeの中では既に導入ずみ)課金ではなくリワード広告を使用してアンロックさせる仕組みで使用した。

//Huawei向けか判定
Resources res = getResources();
boolean is_huawei = res.getBoolean(R.bool.is_huawei);
if (is_huawei){
System.out.println( "判定-"+"HUAWEI");

} else {


System.out.println( "判定-"+"PLAYSTORE" );

}

なおhuawei app galleryではパッケージ名の末尾を.huaweiにする必要がある。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA