根据https://developer.android.com/tools/revisions/build-tools.html,此版本添加了对Android 6.0(包含新的requestPermission方法)的支持。
Revision 23.0.0 (August 2015)
Added support
for the Android 6.0 (API level 23) release.
我正在使用android 6.0的新requestPermission方法,但是没有更新buildToolsVersion - 但是当我期望构建过程失败时程序仍然有效(参见附图)。
所以问题是:buildToolsVersion究竟做了什么?我想知道为什么版本22.0.1在不应该的时候工作? android studio是否绕过了build.gradle文件中的值?
build.gradle的相关部分
import groovy.swing.SwingBuilder
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
compileOptions {
encoding "UTF-8"
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
//Minimum FROYO
minSdkVersion 4
targetSdkVersion 23
<snip off unrelated parts>
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-v4:23.0.1'
// ads: google play
googlePlayCompile 'com.android.support:appcompat-v7:23.0.1'
googlePlayCompile 'com.google.android.gms:play-services-ads:7.5.0'
testCompile 'org.robolectric:robolectric:2.4'
testCompile 'junit:junit:4.12'
}
修改 the other question中的答案说我必须使用buildToolsVersion&gt; = compileSdkVersion来使用新功能。然而,我在不更新buildToolsVersion的情况下使用了新功能。
答案 0 :(得分:0)
它是每个API级别的编译器版本。例如,如果我们使用compileSDKversion 20,我们可以使用buildToolsVersion 20.0.0或更高版本。