为什么android / gradle会引发:“找不到属性'compileSdkVersion'的资源标识符”?

pel*_*olt 3 android gradle

我有一个基于Android / Gradle的项目

AndroidManifest.xml 设置sdk:

...
<uses-sdk android:minSdkVersion="16"
          android:targetSdkVersion="22"
          android:compileSdkVersion="22"/>
...
Run Code Online (Sandbox Code Playgroud)

在Gradle配置中-build-extras.gradle我也设置了sdk-大致为:

...
android {
    compileSdkVersion 22
    buildToolsVersion '22.0.1'

    defaultConfig {
        applicationId 'com.example.myapp'
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName '1.0'
    }
...
Run Code Online (Sandbox Code Playgroud)

使用Gradle构建项目时,我得到:

...
No resource identifier found for attribute 'compileSdkVersion' in package 'android'
...
Run Code Online (Sandbox Code Playgroud)

为什么呢

我得到了它的构建android:compileSdkVersion="22"AndroidManifest.xml但是经过大量的试验和错误,这真是幸运。所以我很想知道为什么?

Dal*_*kar 5

<uses-sdk>具有以下语法,并且不包含compileSdkVersion属性:

<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />
Run Code Online (Sandbox Code Playgroud)

Uses-SDK元素文档

compileSdkVersion 与编译过程有关,与最终应用程序的执行无关,因此在应用程序清单中没有位置。