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にする必要がある。