由于下载最新的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
24 回答
帮助我,取自here
您必须使用版本19配置所有支持和appcompat库 .
如果离开带有19.版本的支持库的建议不起作用,您可以尝试AndroidManifest文件中的下一个提示 .
首先添加此代码:
然后,在应用程序级别(不在应用程序内部!)
我在这里制作所有解决方案都没有结果,所以我看看另一个地方,我找到了一种欺骗IDE的方法,所以你必须在Mainfest中添加一行来使Gradle使用另一个,你在build.gradle上放置的那一行是:
只是它,它的工作原理 .
我希望它有所帮助 .
你需要从build.gradle中删除
compile 'com.android.support:support-v13:+'
这是为此btw https://code.google.com/p/android/issues/detail?id=72430提交的新错误
假设您使用的是支持存储库,则解决方法是注释或删除该行
21.0.0-rc1位于/extras/android/m2repository/com/android/support-v4/maven-metadata.xml的本地Maven仓库列表文件中
对于在 Android Studio 测试版中遇到此问题的人来说,接受的答案并没有解决我的问题 . 导入从GitHub下载的项目,我在app的build.gradle文件中有以下内容,给出了一个错误:
但在我的外部库文件夹中,我有这个文件夹:
我通过将依赖项更改为:解决了上述问题:
注意:您可能还需要为某些库和项目下载比Android Studio中当前可用的api级别更低的api级别,以使其正常工作 .
不要忘记,您应该在项目的“app”子文件夹中编辑build.gradle,而不是在项目文件夹中 . 我已经失去了一个工作日试图解决版本“L”的问题 .
Note: This has been updated to reflect the release of API 21, Lollipop. Be sure to download the latest SDK.
在我的一个模块中,我在build.gradle中有以下内容:
将此更改为
解决了这个问题 .
确保您没有在项目的任何位置一般包含
com.android.support:support-v4:+
或任何其他支持库(v7,v13,appcompat等) .我假设问题是
v4:+
拿起发布候选版本(21.0.0-rc1)最新的L版本,显然需要L SDK .Edit:
如果您需要使用新视图(CardView,RecyclerView和Palette),则以下内容应该有效:
(感谢EddieRingle on / androiddev - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/)
Another Edit
请务必查看下面关于appcompat-v7和upvote的@ murtuza答案,如果有帮助的话!
此外,如果您要导入appcompat-v7库,请确保在其末尾标记版本号,如下所示:
仅更改support-v4版本后,我仍然收到错误:
这有点令人困惑,因为看起来v4仍然是问题,但实际上,限制appcompat v7版本修复了问题 .
Solution 1:
将uses-sdk更改为
<uses-sdk tools:node="replace" />
并在AndroidManifest.xml
中添加xmlns:tools="http://schemas.android.com/tools"
确保使用gradle 0.11及更高版本来使用Manifest合并 .
Solution 2:
在
build.gradle
中将compile 'com.android.support:support-v4:+'
更改为compile 'com.android.support:support-v4:20.+'
. 这将阻止gradle使用需要版本L的v4:21.0.0
.但是,如果您的任何外部依赖项使用相同的 . 您可能需要等待他们更新相同的内容 .
Solution 3:
删除/注释
<version>21.0.0-rc1</version>
在您的文件中<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
对support-v7重复相同操作
不再有效 .
改变
uses-sdk
到并添加
AndroidManifest.xml文件中的
xmlns:tools="http://schemas.android.com/tools"
传递依赖性仍然会出现问题 . Gradle提供了一种强制使用特定版本依赖项的方法 .
例如,您可以添加以下内容:
到你的build.gradle .
如果您想了解有关gradle resolution策略的更多信息,请参阅本指南http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
我在阅读相应的问题时发现了这一点,我将链接here
在build.gradle文件中,它默认编译为'com.android.support:support-v4:'所以当你构建gradle项目时会考虑com.android.support:support-v4:21.0.0-rc1因为最近的L开发者预览版 .
在以下行中进行更改,它将解决此问题 . 更改
至
同样,在使用v7-appcompat支持库时,请进行更改
compile 'com.android.support:appcompat-v7:+'
至
添加上面的正确答案,由于库嵌套,问题仍然可能发生 . 在这种情况下,请尝试以下示例:
我也有同样的问题,改变跟随帮助了我:
从:
至:
对于使用cordova CLI构建混合应用程序的人,此命令将有助于:
是的,你看到它时使用双双破折号 .
我通过编辑 build.gradle 中的下面一行解决了这个问题,它确实有效! :-)
添加版本 20.+'
从
至
尝试删除项目中的 build 文件夹并重新同步gradle项目以重建它 . 另外,和其他人一样在这篇文章中说过 - 而不是做这样的事情:
做这个:
谢谢@Murtuza . 你的回答帮助我解决了我的问题但在我的情况下
compile 'com.android.support:support-v13:19.+
,还有compile 'com.android.support:support-v4:19.+' compile 'com.android.support:appcompat-v7:19.+'
来自
compile 'com.android.support:support-v4:+' compile 'com.android.support:support-v7:+' compile 'com.android.support:support-v13:+'
希望这可能对某人有所帮助我有一些项目,我更喜欢目标L.MR1(SDKv22)和一些我更喜欢KK(SDKv19)的项目 . 你的结果可能会有所不同,但这对我有用 .
在Android Studio 1.1.0中:文件 - 项目结构 - 选项卡风格 - 选择Min Man SDK版本高于Manifest
我有第二个解决方案:
解压缩
https://dl.dropboxusercontent.com/u/16403954/android-21.zip
至sdk\platforms\
更改build.gradle之类的
在清单中
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.aar 并编辑 AndroidManifest.xml 之类的
从
至
附:您可以使用所有需要的支持库来执行此操作 .
唯一对我有用的是:
在project.properties中,我更改了:
cordova.system.library.1 = com.android.support:support-v4:to cordova.system.library.1 = com.android.support:support-v4:20 .
对我来说,这样的问题可以通过改变来解决
在build.gladdle文件中,使用错误消息中指定的文件
但问题是
所以我在build.gladdle文件中从14更改为15并且它可以正常工作
试试看 .