1.app下的build
compileSdkVersion:
作用:使用什么版本编译你的应用(推荐使用最新版本的SDK)
修改compileSdkVersion不会改变运行时的行为,当你修改了compileSdkVersion的时候,可能会会出现新的编译警告、编译错误,但新的compileSdkVersion 不会被包含到 APK 中:它纯粹只是在编译的时候使用。
注意:如果使用 Support Library ,那么使用最新发布的 Support Library 就需要使用最新的 SDK 编译。
minSdkVersion:
指明应用程序运行所需的最小API。
如果系统的API level低于android:minSdkVersion设定的值,那么android系统会阻止用户安装这个应用
如果指明了这个属性,并且在项目中使用了高于这个API level的API, 那么会在编译时报错。
如果只在较高版本的系统上才使用某些 API,通常使用运行时检查系统版本的方式解决。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
//do something
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){
//do something
}
targetSdkVersion:
targetSdkVersion 是 Android 提供向前兼容的主要依据
将 target 更新为最新的 SDK 是所有应用都应该优先处理的事情。但这不意味着你一定要使用所有新引入的功能,也不意味着你可以不
做任何测试就盲目地更新 targetSdkVersion ,请一定在更新 targetSdkVersion 之前做测试!
如果平台的API Level高于你的应用程序中的targetSdkVersion属性指定的值,系统会开启兼容行为来确保你的应用程序继续以期望的
形式来运行。你可以通过指定targetSdkVersion来匹配运行程序的平台的 API level来禁用这种兼容性行为。举例来说,设置这个值为11
或更高,当你的应用运行在Android3.0或更高的系统上时,系统会为你的应用使用新的默认主题(Holo主题),并且当运行在大屏幕的设
备上时会禁用屏幕兼容模式(screen compatibility mode),因为支持了 API level 11就暗示了支持大屏幕。
2.Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:27.+问题:
在项目build下:
allprojects {
repositories {
jcenter()
maven { url "https://maven.google.com" }//maven仓库
}
}
AS3.0以上:
allprojects {
repositories {
jcenter()
google()
}
}
3.build很慢的解决方法:
在Android Studio构建build的时候,很大一部分工作是在创建java相关的工作,比如创建java虚拟机之类。可以把这部分工作放到单独的后台进程中去执行,只需要在gradle.properties后面加上:
org.gradle.daemon=true;
4.使用项目变量来设置全局的版本
方法1:
创建一个自定义的config.gradle在根gradle下应用。应用方法:
apply from : "config,gradle"
方法2:
直接在根gradle里写:
def supportVersion = "25.2.1"
project.ext{
applicationId = "com.**"
buildToolsVersion = "23.0.2"
compileSdkVersion = "23"
libSupprotAppcompat = "com.android.support:appcompat-v7:${supportVersion}"
...
}
然后去app的gradle下引用:如
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compile rootProject.ext.libSupprotAppcompat
...
5.gradle 版本升级回退修改:
gradle plugin版本和gradle版本之间的对应关系:
Plugin version | Required Gradle version |
---|---|
1.0.0 - 1.1.3 | 2.2.1 - 2.3 |
1.2.0 - 1.3.1 | 2.2.1 - 2.9 |
1.5.0 | 2.2.1 - 2.13 |
2.0.0 - 2.1.2 | 2.10 - 2.13 |
2.1.3 - 2.2.3 | 2.14.1+ |
2.3.0+ | 3.3+ |
3.0.0+ | 4.1+ |
3.1.0+ | 4.4+ |
3.2.0+ | 4.6+ |
1:修改项目build.gradle中的 classpath 'com.android.tools.build:gradle:3.2.0’(想升级的版本)
2:修改gradle-wrapper.properties中的对应的gradle版本