Android - 将compileSdkVersion更改为16会导致编译错误(gradle)

时间:2015-08-29 19:10:56

标签: android gradle android-gradle build.gradle

刚刚在Studio中创建了一个新的Android应用程序,我将compileSdkVersion和minSdkVersion设置为16,因为我想确保我不会在Android的更高版本中使用任何功能。

但是,我的build.gradle中的这一行似乎在更改后会导致编译错误:

compile 'com.android.support:appcompat-v7:23.0.0'

当我发表评论时,编译将会成功。我不需要这条线吗?我认为ActionBar等是必要的。

我是否有错误的想法,首先将compileSdkVersion更改为16,以确保我不使用新功能?

4 个答案:

答案 0 :(得分:2)

我相信你想支持sdk版本16+,为此,只需将minSdkVersion设置为16并使用compileSdkVersion作为最新版本,即23

通过这样做,如果您使用版本17+中引入的新功能,编译时或在Android Studio中编辑代码时将显示错误/警告。

修改:更多细节

你应该这样做的原因之一,因为你的代码可以有这样的东西:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
}

实际上这也是支持库的工作方式。

http://developer.android.com/training/basics/supporting-devices/platforms.html

答案 1 :(得分:1)

您应该将 Android SDK平台更新为最新的 Android 6.0 API 23。

我遇到了同样的问题,因为我刚刚从SDK Manager更新了支持库,但没有更新SDK平台。

Check this out http://img.techentice.com/img/Android-adk-android-6.jpg



'com.android.support:appcompat-v7:22.2.1'而不是下载SDK平台

答案 2 :(得分:1)

  

但是,我的build.gradle中的这一行似乎在更改后会导致编译错误:   编译'com.android.support:appcompat-v7:23.0.0'

这是因为支持库v23需要API23来编译项目。

build.gradle中,将compileSdkVersion更改为 23

  compileSdkVersion 23
  

当我发表评论时,编译将会成功。我不需要这条线吗?我认为ActionBar等是必要的。

使用minsdk = 16我建议你使用appcompat库。像工具栏这样的小工具,以及所有design support library(CollapsingToolbar,Snackbar ...)都需要appCompat。

另外,如果你想在api16中向后移植材料设计,你需要它。

答案 3 :(得分:1)

如果您想使用最新版本进行编译而不是更新&将SDK安装到最新版本的API 23。

如果你真的想编译&在API 16和API上为您的应用提供支持我希望不添加以后版本的支持(这对我来说没有意义可能对你有好处)然后根据你的陈述

  

我将compileSdkVersion和minSdkVersion设置为16,因为我想   确保我在Android的后续版本中不使用任何功能

然后将compileSdkVersion设置为16,将minSdkVersion设置为16,将targetSdkVersion设置为16

&安培;依赖为compile'c​​om.android.support:appcompat-v6:16.0.0'

检查SDK中的API 16部分。应该安装

enter image description here

你build.gradle应该是这样的

apply plugin: 'com.android.application'

android {
    compileSdkVersion 16
    buildToolsVersion "16.0.0"

    defaultConfig {
        applicationId "com.example.inzi.mapofcontacts"
        minSdkVersion 16
        targetSdkVersion 16
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v6:16.0.0'
}

根据你的问题,它可能对你有帮助。