Android 多渠道配置

夏沫琅琊發表於2024-02-26

Android 多包名,icon

本篇文章主要記錄下android 下的同一工程,打包時配置不同的包名,icon,名稱等資訊.

1: 多包名

首先講述下如何配置多包名.

在build.gralde的android 標籤下新增:

productFlavors{
        xiaomi{
            applicationId "com.test.usagetest"
        }
        huawei{
            applicationId "com.test.usagetest1"
        }
}

此時如果我們執行的話,會出現下面錯誤:

A problem occurred configuring project ':app'.
> All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

解決辦法:

defaultConfig新增一行程式碼:

flavorDimensions "versionCode"

此時編譯重新執行即可.

2: 多icon

  1. 修改manifest.xml

    <application
        android:allowBackup="true"
        android:icon="${app_icon}"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.UsageTest">
    

    將icon屬性由原來的"@mipmap/ic_launcher" 替換成$

  2. 修改build.gradle

    productFlavors{
        xiaomi{
            applicationId "com.test.usagetest"
            manifestPlaceholders = [app_icon : "@mipmap/ic_launcher"]
        }
        huawei{
            applicationId "com.test.usagetest1"
            manifestPlaceholders = [app_icon : "@mipmap/ic_launcher2"]
        }
    }
    

執行後可以看到icon已替換.

3:多名稱

修改方法與icon一致.

productFlavors{
    xiaomi{
        applicationId "com.test.usagetest"
        manifestPlaceholders = [app_icon : "@mipmap/ic_launcher",
                                app_name : "test1"]
    }
    huawei{
        applicationId "com.test.usagetest1"
        manifestPlaceholders = [app_icon : "@mipmap/ic_launcher2",
                                app_name : "test2"]
    }
}

4: 多資源

不同的包名對應不同的資原始檔.

配置res的不同路徑.

 sourceSets{
        xiaomi{
            res.srcDir("src/main/res")
        }
        huawei{
            res.srcDir("src/hw/res")
        }
}

相同資源名稱下設定不同的值即可.

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章