Android - 更改 compileSdkVersion 导致错误

5
我正在使用Android Studio 1.2.2来开发一个Android应用程序。在我的build.gradle文件中,我一开始就将compileSdkVersion定义为21。现在我想将其更改为19,因为实际上这个软件将永远不会安装在运行高于Android 4.4的Android设备上。
当我尝试将这个值更改为19时,项目就无法编译了。
在版本值更改后,我已经:
- 同步了项目 - 清除了项目 - 重新构建了项目(尝试过)
但是出现了以下错误:
在文件/projectpath/app/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/res/values-v21/values-v21.xml中标记了103个错误,显示“无法解析符号”。 values-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"/>
....
  • 无法解析符号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'
}

如果您不针对API 21,则不需要values-v21.xml。请从您的项目中删除values-v21.xml - Sash_KP
谢谢!该文件位于build文件夹下。我可以删除它,但它会以相同的错误重建。在我的项目中,我找不到名为“values-v21.xml”的文件。那么这是从哪里来的? - Michael B
如果有效,检查@Budius的答案。 - Sash_KP
那对我有用。谢谢! - Michael B
3个回答

1
要使用appcompat-v7:22.2.0,您需要编译API 21。这样做没有害处,即使它永远不会在运行21的设备上。
您可以尝试一些旧版本的应用程序兼容性,但是您将错过最新应用程序兼容性中的“酷新功能”和错误修复。

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Michael B

1

如果这可以帮助到某人,经过多次尝试和错误,我发现我在与“库”对应的build.gradle文件中针对错误的SDK版本(旧版本)。要更改此内容,您可以手动操作或转到模块设置菜单(右键单击项目文件夹 -> 打开模块设置)。然后在“库”-属性中,您可以更改编译SDK和构建工具版本。

enter image description here


0

请确保您在SDK管理器中已安装API 19


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