由于下载了最新的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的答案,如果它有帮助的话,请给它点赞!
另外,如果你正在导入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版本解决了这个问题。
解决方案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重复相同的操作
在构建中。gradle文件,默认是compile 'com.android. exe。所以当你构建gradle项目时,它会考虑com.android.support:support-v4:21.0.0-rc1,因为最近的L开发者预览版本。
在下面一行中进行更改,将解决该问题。
改变
compile 'com.android.support:support-v4:+'
to
compile 'com.android.support:support-v4:20.+'
类似地,当使用v7-appcompat支持库时,从
compile’com android支持:appcompat-v7: + '
to
compile 'com.android.support:appcompat-v7:20.+'.
对于那些在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级别的库和项目。
谢谢@Murtuza。你的回答帮助我解决了我的问题,但对我来说
编译的com.android.support: support-v13:19。+ also, along with
编译“com.android.support: support-v4:19 +”。
编译“com.android.support: appcompat-v7:19 +”。
从
编译的com.android.support: support-v4: +
编译的com.android.support: support-v7: +
编译的com.android.support: support-v13: +
希望这能帮助到一些人
我有第二个解决方案:
解压缩https://dl.dropboxusercontent.com/u/16403954/android-21.zip到sdk\platforms\
改变构建。它就像
compileSdkVersion 21
buildToolsVersion“20.0.0”
defaultConfig {
applicationId“package.name”
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName“1.0”
}
添加
<uses-sdk tools:node="replace" />
xmlns:tools="schemas.android.com/tools";
去sdk\extras\android\m2repository\com\android\support\support-v4\21.0.0-rc1\
解压缩support-v4-21.0.0-rc1。编辑AndroidManifest.xml
从
<uses-sdk
android:minSdkVersion="L"
android:targetSdkVersion="L" />
to
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="21" />
附注:您可以对所有需要的支持库进行此操作。
我有一些项目,我喜欢针对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:+'
}