Android-Gradle 构建修改[applicationId]和[packageName]
2017-02-08 00:00
363 查看
摘要: 使用Ideazuowei
直接在构建不同变体时调用自定义的任务,任务定义在 app/build.gradle
OK 没了
需求
利用gradle打包时,不止要动态替换配置文件的package,希望生产的 资源文件(R.Strings,R.values)R文件的包名也发生变化,android的gradle 插件默认是不支持的一,代码目录结构
二,修改 Top-level build.gradle
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { description 'Clean the build files' delete rootProject.buildDir } tasks.getByPath("app:pre[Flavors_baidu]ReleaseBuild").dependsOn ":app:flavors_baidu_release" tasks.getByPath("app:pre[Flavors_baidu]DebugBuild").dependsOn ":app:flavors_baidu_debug" tasks.getByPath("app:pre[Flavors_360]ReleaseBuild").dependsOn ":app:flavors_360_release" tasks.getByPath("app:pre[Flavors_360]DebugBuild").dependsOn ":app:flavors_360_debug"
直接在构建不同变体时调用自定义的任务,任务定义在 app/build.gradle
三,修改 Second-level build.gradle
配置 flavors
android{ productFlavors { flavors_baidu{ applicationId 'com.baidu.demo' versionNameSuffix '.baidu' } flavors_360{ applicationId = "com.360.demo" versionNameSuffix '.360' } } }
自定义任务
android{ task flavors_baidu_release() { doFirst { println "----------------------------flavors_baidu_release--------------------------------------" sourceSets.main. manifest.srcFile 'src/baidu/AndroidManifest_baidu.xml' println sourceSets.main. manifest.srcFile println "----------------------------flavors_baidu_release--------------------------------------" } } task flavors_baidu_debug() { doFirst { println "----------------------------flavors_baidu_debug--------------------------------------" sourceSets.main. manifest.srcFile 'src/main/AndroidManifest_baidu.xml' println sourceSets.main. manifest.srcFile println "----------------------------flavors_baidu_debug--------------------------------------" } } task flavors_360_release() { doFirst { println "----------------------------flavors_360_release--------------------------------------" sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml' println sourceSets.main. manifest.srcFile println "----------------------------flavors_360_release--------------------------------------" } } task flavors_360_debug() { doFirst { println "----------------------------flavors_360_debug--------------------------------------" sourceSets.main. manifest.srcFile 'src/360/AndroidManifest_360.xml' println sourceSets.main. manifest.srcFile println "----------------------------flavors_360_debug--------------------------------------" } } }
OK 没了
相关文章推荐
- Android Package Name vs. Application ID
- Android package属性、package name和Application ID三者的联系及区别
- Android官方技术文档翻译——ApplicationId 与 PackageName
- Android中applicationId与package name的区别
- Android package属性、package name和Application ID三者的联系及区别
- Android package属性、package name和Application ID三者的联系及区别
- Android官方技术文档翻译——ApplicationId 与 PackageName
- android ApplicationId 与 PackageName
- Android官方技术文档翻译——ApplicationId 与 PackageName
- Android package属性、package name和Application ID三者的联系及区别
- [译]Android Package Name Vs Application ID
- 在Android Studio中修改包名?ApplicationId 与 PackageName
- Android ApplicationId 与 PackageName
- Android官方技术文档翻译——ApplicationId 与 PackageName
- Android package属性、package name和Application ID三者的联系及区别
- 20170308_Android包名 - ApplicationId 与 PackageName
- Android官方技术文档翻译——ApplicationId 与 PackageName
- Android官方技术文档翻译——ApplicationId 与 PackageName
- 在Android中applicationId与package name的那些事
- Android Studio使用gradle-experimental构建NDK工程(无需Android.mk、Application.mk文件)