android studio的Gradle各种配置汇总
16lz
2022-01-11
本博文为个人使用过程中遇到问题和解决方案的总结,并非系统的gradle编译教程。
1 在Gradle中配置签名
apply plugin: 'com.android.application'android { compileSdkVersion 19 buildToolsVersion "23.0.3" signingConfigs { config { keyAlias 'xxx' keyPassword 'xxx' storeFile file('d:\\mykey') storePassword 'xxxx' } } // ....}
2 在gradle中建立多个发行版
因为每个市场,可能要求有不同的广告sdk。就需要有不同的发行版
productFlavors { qq { buildConfigField "boolean", "isFree", "true" buildConfigField "boolean", "hasVip", "false" } baidu { buildConfigField "boolean", "isFree", "false" buildConfigField "boolean", "hasVip", "true" } anzhi{ buildConfigField "boolean", "isFree", "true" buildConfigField "boolean", "hasVip", "true" } }
在这里可以加变量,gradle会在BuildConfig.java中建立isFree和hasVip变量。可以在程序中直接使用这些量。
不同市场不同代码
我想在不同的发行版中使用不同的代码怎么办?比如有的版本中包含A这个类,有的版本包含B这个类。
首先在src下main的同一层建立一个qq目录,qq下建立java目录,其中放入代码
sourceSets { main { java.srcDirs = ['src/main/java'] } debug{ java.srcDirs = ['src/main/java','src/qq/java'] } baidu{ java.srcDirs = ['src/main/java'] } }
这里我在debug中,加入了qq\java下的东西,方便调试。 在baidu和main中均不包含这些代码。
qq的sourceset没有配置,因为会自动包含。
不同市场不同的lib
在dependence中可以根据不同的配置进行不同的引入
dependencies { compile files('libs/open_sdk_r5756.jar') compile files('libs/Sunflower.jar') debugCompile files('libs/YoumiSdk_v7.0.1_2017-01-06.jar') qqCompile files('libs/YoumiSdk_v7.0.1_2017-01-06.jar')}
其中,debugComile是在debug模式下的时候,加入youmisdk。qqCompile是在qq的debug和release下都加入这个库。而其他的编译版本则没这个库。
不同的市场不同的Androidmanifest
在main下建立一个较为全面的基础xml文件。
在main同一级的其他市场文件夹下,如qq下下,建立Androidmanifest,去掉
xml
android:versionCode="10"
android:versionName="2.03"
去掉
“`xml
“`
只放增量内容。
gradle会自动对两个xml进行合并。
更多相关文章
- Android锁屏API-DevicePolicyManager介绍
- Android(安卓)AIDL进程通信机制详解
- android上传图片到服务器,求服务器那边和android的Activity的完整
- android上传图片到服务器,求服务器那边和android的Activity的完整
- 自定义Android菜单背景
- android 单元测试 附源码
- Android(安卓)代码混淆 防止反编译
- Android(安卓)startActivityForResult的使用
- Android(安卓)AIDL进程通信机制详解