为什么 Android/Gradle 报错 "No resource identifier found for attribute 'compileSdkVersion'"?

3

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

AndroidManifest.xml设置了SDK版本:

...
<uses-sdk android:minSdkVersion="16"
          android:targetSdkVersion="22"
          android:compileSdkVersion="22"/>
...

在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'
    }
...

使用Gradle构建项目时,我遇到了以下问题:

...
No resource identifier found for attribute 'compileSdkVersion' in package 'android'
...

为什么?

我尝试从AndroidManifest.xml中移除android:compileSdkVersion="22"来进行构建,虽然在多次尝试后我终于成功了。但这只是侥幸,我还是想知道原因。

1个回答

5

<uses-sdk> 的语法如下,不包括 compileSdkVersion 属性:

<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />

uses-sdk 元素文档

compileSdkVersion 是针对编译过程而言,与最终应用程序的执行无关,因此它不应包含在应用程序清单中。


很好的解释 - 可惜我没有仔细检查清单文件,必须启用一些 Android Linting。真气人。 - pellekrogholt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接