由于下载了最新的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

当前回答

解决方案1:

将uses-sdk更改为<uses-sdk tools:node="replace" />并添加xmlns:tools="http://schemas.android.com/tools" 在AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.demo.android"
    android:versionCode="16"
    android:versionName="3.3.1">
    .
    .
    <uses-sdk tools:node="replace" />
    .
    .
</manifest>

确保你使用gradle 0.11及以上版本来使用Manifest合并。

解决方案2:

更改compile 'com.android。Support: Support -v4:+' to compile 'com.android.support: Support -v4:20。+'在build.gradle中。这将阻止gradle使用 v4:21.0.0,需要版本L。 然而,如果你的任何外部依赖使用相同的。您可能需要等待他们更新相同的内容。

解决方案3:

删除/注释<version>21.0.0-rc1</version>在你的文件<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml 对support-v7重复相同的操作

其他回答

我也有同样的问题,改变以下帮助我:

来自:

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

to:

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

注:这已经更新,以反映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文件,它工作

试一试。

另外,如果你正在导入appcompat-v7库,请确保在它的末尾标记一个版本号,如下所示:

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

在只更改了support-v4版本后,我仍然收到错误:

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

这有点令人困惑,因为它看起来仍然是v4的问题,但实际上,限制appcompat v7版本解决了这个问题。

我有一些项目,我喜欢针对L.MR1(SDKv22)和一些项目,我喜欢KK(SDKv19)。你的结果可能不同,但这对我很有效。

// Targeting L.MR1 (Android 5.1), SDK 22
android {
    compileSdkVersion 22
    buildToolsVersion "22"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // google support libraries (22)
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.android.support:cardview-v7:21.0.3'
    compile 'com.android.support:recyclerview-v7:21.0.3'
}



// Targeting KK (Android 4.4.x), SDK 19
android {
    compileSdkVersion 19
    buildToolsVersion "19.1"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    // google libraries (19)
    compile 'com.android.support:support-v4:19.1+'
    compile 'com.android.support:appcompat-v7:19.1+'
    compile 'com.android.support:cardview-v7:+'
    compile 'com.android.support:recyclerview-v7:+'
}