我是否可以将最新版本的appcompat库与针对sdk 21的项目一起使用

时间:2016-01-06 02:48:22

标签: android gradle android-support-library android-appcompat

我不太了解这个appcompat库,所以如果这不是最聪明的问题,请道歉。

我有一个项目,我遇到了问题。事实证明我将targetSdkVersion设置为23并且因为我想使用21而导致我出现问题所以我将其更改为21。

在我的build.gradle中,我编译了com.android.support:appcompat-v7:23.1.1。

当我尝试构建时,这会导致以下问题:

  

C:\用户\康纳\文件\编程\ AndroidStudioProjects \ AndroidStudioProjects \ RouteTracker \应用\构建\中间体\分解-AAR \ com.android.support \程序兼容性-V7 \ 23.1.1 \ RES \值-V23 \值-v23.xml

     

错误:(2)检索项目的父项时出错:找不到与给定名称“android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。

     

错误:(2)检索项目的父项时出错:找不到与给定名称“android:Widget.Material.Button.Colored”匹配的资源。   错误:任务':app:processDebugResources'的执行失败。

     

com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令'C:\ Users \ Conor \ AppData \ Local \ Android \ sdk \ build-tools \ 21.0。 0 \ aapt.exe''以非零退出结束

所以我尝试使用com.android.support的appcompat:appcompat-v7:21.1.0(因为它是我唯一可以明确找到的那个),但它也没有用。说它无法找到并告诉我使用最新版本,即23.1.1。

我应该使用23.1.1吗?如果是这样,任何想法,这些错误是什么?

3 个答案:

答案 0 :(得分:3)

  

错误:(2)检索项目的父项时出错:找不到与给定名称匹配的资源' android:TextAppearance.Material.Widget.Button.Inverse'。

之所以发生这种情况,是因为您使用的支持库 v23 需要使用API​​ 23编译

更改build.gradle这一行:

compileSdkVersion 23

您可以使用其他版本的支持库,但是:

  • 注意使用其他使用最新版本的依赖项
  • 21.1.0不存在
  • 使用正确的api编译

这里有完整列表:

  //it requires compileSdkVersion 23
  compile 'com.android.support:appcompat-v7:23.1.1'
  compile 'com.android.support:appcompat-v7:23.1.0'
  compile 'com.android.support:appcompat-v7:23.0.1'
  compile 'com.android.support:appcompat-v7:23.0.0'

  //it requires compileSdkVersion 22
  compile 'com.android.support:appcompat-v7:22.2.1'
  compile 'com.android.support:appcompat-v7:22.2.0'
  compile 'com.android.support:appcompat-v7:22.1.1'
  compile 'com.android.support:appcompat-v7:22.1.0'
  compile 'com.android.support:appcompat-v7:22.0.0'

  //it requires compileSdkVersion 21
  compile 'com.android.support:appcompat-v7:21.0.3'
  compile 'com.android.support:appcompat-v7:21.0.2'
  compile 'com.android.support:appcompat-v7:21.0.0'

答案 1 :(得分:0)

没有。 AppCompat最新更新删除了一些旧的依赖项。这仅适用于v23。因此,您必须使用targetSdkVersion 23.(marshmallow)更新您的代码。

答案 2 :(得分:0)

您已获得解决方案但问题的答案“我是否可以使用最新版本的appcompat库以及针对sdk 21的项目”,如下所示。项目lib应与'compileSdkVersion'兼容;不一定与targetSdkVersion。理想情况下,您的compileSdkVersion& targetSdkVersion将是相同的,但如果您的要求是针对较低的targetSdkVersion,那么您可以将其保持低于compileSdkVersion。