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
-
修改manifest.xml
java<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" 替换成${app_icon}
-
修改build.gradle
shellproductFlavors{ 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")
}
}
相同资源名称下设置不同的值即可.