android - 为什么android/gradle会引发: "No resource identifier found for attribute ' compileSdkVersion'"?

标签 android gradle

我有一个基于 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",但这是经过大量试验和错误后的幸运一击。所以我很想知道为什么?

最佳答案

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

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

uses-sdk element documentation

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

关于android - 为什么android/gradle会引发: "No resource identifier found for attribute ' compileSdkVersion'"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30303741/

相关文章:

android - android项目中包含JAR会影响apk的大小吗

android - android相机中的变焦和平滑变焦有什么区别?

java - 无法解析方法 'buildAsync()'

android - Gradle-如何为每种口味指定不同的Android * .apk构建位置?

android tabhost 相同的 Activity

java - 如何在 squareup.okhttp3 中缓存响应

Android:如何使用 onFocusChangeListener 启动 DatePickerDialog?

gradle - Liquibase Groovy Accessomg datebaseChangeLog属性

java - gradle 中的 'apply from' 是什么意思?

java - Chronicle-Map:ClassNotFoundException 与 Gradle 和 AspectJ