Android – 更改compileSdkVersion会导致错误

我正在使用
Android Studio 1.2.2开发Android应用程序.在我的build.gradle文件中,自工作开始以来,我已将compileSdkVersion定义为21.现在我想将其更改为19,因为该软件实际上永远不会安装在Android设备上,该设备运行的版本高于Android 4.4

当我尝试将此值更改为19时,项目不再编译.

更改版本值后,我有:

>同步项目
>清理了项目
>重建项目(试过)

但是发生以下错误:

在文件/projectpath/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/res/values-v21/values-v21.xml中,它标记了103个错误,说“无法解析符号”.

价值观v21.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-- From: file:/usr/local/google/buildbot/repo_clients/https___googleplex-android.googlesource.com_a_platform_manifest.git/lmp-mr1-supportlib-release/frameworks/support/v7/appcompat/res/values-v21/styles_base_text.xml -->
    <eat-comment/>
    <style name="Base.TextAppearance.AppCompat" parent="android:TextAppearance.Material"/>
    <style name="Base.TextAppearance.AppCompat.Body1" parent="android:TextAppearance.Material.Body1"/>
    <style name="Base.TextAppearance.AppCompat.Body2" parent="android:TextAppearance.Material.Body2"/>
    <style name="Base.TextAppearance.AppCompat.Button" parent="android:TextAppearance.Material.Button"/>
....

>无法resvle符号android:TextAppearance.Material
>无法恢复符号android:TextAppearance.Material.Body1
>无法恢复符号android:TextAppearance.Material.Body2
>无法恢复符号android:TextAppearance.Material.Button

等等…

导致此错误的原因是什么?我该怎么做才能让它再次编译?
当我将compileSdkVersion更改回21时,一切正常.

我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '23.0.0 rc3'
    defaultConfig {
        applicationId 'com.appname.id'
        minSdkVersion 17
        targetSdkVersion 19
        versionCode 1
        versionName "0.0.2 Alpha"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    mavenCentral()
}



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

最佳答案 要使用appcompat-v7:22.2.0,你必须针对API 21进行编译.这样做没有任何害处,即使它永远不会在运行21的设备上运行.

您可以尝试一些旧版本的应用程序compat,但随后您将缺少“酷新功能”和最新应用程序兼容的错误修复.

点赞