由于下载了最新的SDK并安装了Android Studio,我的项目无法构建。我得到了以下信息:

Error:Gradle: Execution failed for task ':SampleProject:processProdDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1

当前回答

注:这已经更新,以反映API 21,棒棒糖的发布。请务必下载最新的SDK。

在我的一个模块中,我有以下build.gradle:

dependencies {
    compile 'com.android.support:support-v4:+'
}

将其更改为

dependencies {
    // do not use dynamic updating.
    compile 'com.android.support:support-v4:21.0.0' 
}

修正了这个问题。

确保你没有对com.android进行一般的包含。支持:Support -v4:+或任何其他支持库(v7, v13, appcompat等),在您的项目中的任何位置。

我假设问题是v4:+选择了最新的L候选版本(21.0.0-rc1),这显然需要L SDK。

编辑:

如果你需要使用新的视图(CardView, RecyclerView和Palette),以下应该工作:

compile "com.android.support:cardview-v7:21.0.0"
compile "com.android.support:recyclerview-v7:21.0.0"
compile "com.android.support:palette-v7:21.0.0"

(图片来源:EddieRingle on /androiddev - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/)

另一个编辑

一定要看看下面@murtuza关于appcompat-v7的答案,如果它有帮助的话,请给它点赞!

其他回答

对我来说,这样的问题可以通过改变

minSdkVersion 14

在构建中。Gladdle文件,并使用错误消息中指定的

但问题是

Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library

所以我把14改成了15。Gladdle文件,它工作

试一试。

对于那些在Android Studio测试版中遇到这个问题的人来说,公认的答案并不能解决我的问题。导入一个从GitHub下载的项目,在我的构建中有以下内容。Gradle文件的应用程序给出一个错误的问题:

 dependencies {
    compile 'com.android.support:support-v4:+'
}

但是在我的外部库文件夹中,我有这个文件夹:

support-v4-21.0.0-rc1 //note the 21

我通过将依赖项更改为解决了上述问题:

dependencies {
compile 'com.android.support:support-v4:20.+' //20 used less than available strange but works
}

注意:为了正常工作,你可能还需要下载一些低于当前Android Studio中可用的api级别的库和项目。

最好的办法是让Android Studio来解决这个问题。

我做了下面的操作,效果很好。

在Android Studio中打开你的项目,会弹出错误,如果有给出的链接来修复它,请点击它。 在Android Studio中重新打开你的项目,会弹出错误,如果第一步中没有给出,这次会有一个链接,点击给定的链接来修复它。

请注意,这两个操作都花费了几分钟的时间,但修复了所有问题。

你必须配置所有支持和appcompat库版本19 +

如果建议离开支持库的19个。+版本不工作,你可以尝试下一个技巧在你的AndroidManifest文件。

首先添加以下代码:

xmlns:tools="http://schemas.android.com/tools"

然后,在应用程序级别(不是应用程序内部!)

<uses-sdk tools:node="replace" />

别忘了,你应该编辑构建。Gradle在项目的“app”子文件夹中,而不是在项目的文件夹中。为了解决版本L的问题,我浪费了一天的工作时间。