修改app的build.gradle文件
android {
...
productFlavors {
app1 {
applicationId "com.johan.demo"
// 生成@string/app_name为demo 要把@string/app_name清掉
resValue "string","app_name","demo"
// 定义app_icon字段,在AndroidManifest.xml文件中用到
manifestPlaceholders = [app_icon : "@mipmap/ic_launcher"]
}
app2 {
applicationId "com.johan.demo1"
resValue "string","app_name","demo1"
manifestPlaceholders = [app_icon : "@mipmap/ic_launcher1"]
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
出现Error:All flavors must now belong to a named flavor dimension. Learn more at
必须要所有的flavor 都属于同一个维度
defaultConfig {
targetSdkVersion:***
minSdkVersion :***
versionCode:***
versionName :***
//版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了
flavorDimensions "versionCode"
}
修改AndroidManifest.xml文件
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.johan.demo">
<application
android:allowBackup="true"
// 这里改为${app_icon}
android:icon="${app_icon}"
android:label="@string/app_name" //这里变红了,不用管他
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ui.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这样就会生成两个apk分别在文件夹app1和app2中
修改生成的名字和路径
Gradle3.3 以上的方法 修改app的build.gradle文件
加入:
android {
...
applicationVariants.all { variant ->
if (variant.buildType.name != "debug") {
variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + "/apk")
}
variant.getPackageApplicationProvider().get().outputScope.apkDatas.forEach { apkData ->
apkData.outputFileName = ((project.name != "app") ? project.name : rootProject.name) + "-" +
variant.versionName + "_" +
variant.flavorName + "_" +
variant.buildType.name + "_" +
".apk"
}
}
}
这个是全局的,所有生成的都会被设置到同一个文件夹,以文件名 variant.flavorName 区别.
博客主要围绕Android Studio开发展开,介绍了修改app的build.gradle文件时遇到的错误及解决办法,强调所有flavor需属于同一维度。还提及修改AndroidManifest.xml文件可生成两个apk,以及在Gradle3.3以上版本修改生成名字和路径的方法。
14

被折叠的 条评论
为什么被折叠?



