清单合并失败:uses-sdk:minSdkVersion 10不能小于库中声明的版本L com.android.support:appcompat-v7:21.0.0-rc1

当我的项目有minSdkVersion 19时,在Android Studio下载了L预览版本后得到了上述错误。

而且,在设置mindSdkVersion如下所示:

 defaultConfig { .... minSdkVersion 'L' .... } 

关于AppCompat-v7-21资源,我收到了几十个错误:

 /home/user/workspace/project/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0-rc1/res/values-v21/values.xml Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'. 

所以我有两个问题:

  1. 为什么AS抱怨minSdkVersion? 我认为,因为AppCompat-v7 21只支持L版本; 但为什么 ? 另外,它也会在秋季正式发布的时候支持L版吗? 因为这将是一个问题…或者,这只是一个暂时的限制,以使应用不会被推到Play Store,正如Google I / O 2014 Keynote中所指定的那样?
  2. 为什么AppCompat-v21会抱怨这些错误,因为我已经把mindSdkVersion设置为L?
 compileSdkVersion 'android-L' 

繁荣。 完成。

最后编辑:从Android 5.0版本开始,这不再是一个问题,直接针对API级别21。

编辑为了清楚 :事实上,如下所示的David_E,这个解决scheme只适用于L版本,如果你尝试在低于L的设备(例如4.4.4)上部署应用程序,它会抱怨OLD_SDK。 为了使应用程序在L之前工作,您仍然需要使用旧的v20支持库+应用程序compat + targetVersionSdk和compileVersionSdk

 dependencies { compile 'com.android.support:appcompat-v7:20.+' compile 'com.android.support:support-v4:20.+' } android { compileSdkVersion 20 buildToolsVersion '20' defaultConfig { applicationId "com.example.application" minSdkVersion 10 targetSdkVersion 20 versionCode 1 versionName "1.0" } } 

此处所述的答案可能无法正常工作,因为这会使您的应用仅适用于Android L.

为了保持与旧版Android操作系统版本的向后兼容性,请更改gradle依赖关系

从:

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

至:

 compile 'com.android.support:appcompat-v7:20.+' 

请注意,错误抱怨com.android.support:appcompat-v7:21.0.0-rc1 ,原因是使用appcompat-v7:+会告诉gradle导入appcompat-v7库的最新依赖项,遗憾的是这个最新版本只适用于Android L,所以我们必须指向以前的版本。

希望谷歌能在不久的将来解决这个问题。

我工作的方式是安装Android Studio Beta(Not Preview Release,testing版今天作为IO的一部分发布)。

卸载预览版本并安装testing版并打开您的项目。 它会要求您使用项目SDK或Studio SDK,使用Android Studio的SDK。

转到你的项目local.properties文件,你有sdk.dir确保反斜杠()加倍.eg \。

转到项目结构> SDK,并确保指向我的电脑上的Android SDK它是C:\ Program Files文件(x86)\ Android \ android-studio \ SDK。

然后在你的项目和任何你有Build.gradle文件的库中

compile 'com.android.support:support-v4改变它compile 'com.android.support:support-v4:20+

重新同步gradle文件和所有固定的

强制使用工作版本只需要像这样更改gradle依赖关系:

 dependencies { compile 'com.android.support:gridlayout-v7:19.0.1' compile 'com.android.support:appcompat-v7:19+' ... } 

是:

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

NB

我在SDKpipe理器中更新了Tools&Extras。

在项目被破坏之后,我如上所示修复了它。

现在我不更新Android L&4.4W(足够的错误今天:-()

感谢大卫的答案!

我必须改变

 compile 'com.android.support:support-v13:+' 

至:

 compile 'com.android.support:support-v13:20.+' 

现在一切正常。

另外:在这里的其他答案并没有解决我的问题,但我发现了一个替代方法来解决在Android Studio 0.8.0 Android的问题。 在我修改了build.gradle中的依赖关系后,这个问题令人遗憾地发生,代码会说OLD_SKD。 我正在使用Galaxy S2。

除了将所有东西改为:19+:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:19+' compile 'com.android.support:support-v4:19+' compile 'com.google.android.gms:play-services:+' compile 'com.android.support:mediarouter-v7:19+' } 

它仍然行不通,所以我不得不在任何可能的地方移回来:

 android { compileSdkVersion 19 buildToolsVersion '19.1' defaultConfig { minSdkVersion 11 targetSdkVersion 19 versionCode 1 versionName '1.0' } 

现在,应用程序再次在手机上工作。 我应该可能会得到一个新的手机,但现在,我希望这可能会帮助一个人。