我几天来一直在开发这个小项目但是今天突然间,Android Studio开始给我这个错误
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.android.support:support-v4:21.0.0-rc1
我明白这是因为它正在尝试编译Android-L库。我想要它编译的版本是旧版本,但它不会。无论我输入哪个版本,它都会一直给我上述错误。这是依赖项。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.+'
compile 'com.android.support:support-v4:20.+'
}
更新
我刚刚安装了Android Studio Beta,并将我的依赖项更改为下面的Eugen建议。但是,无论我指定哪个版本的appcompat支持版本,同步项目都会产生相同的错误。每次同步时都会出现此错误
uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
我更新的依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.android.support:support-v4:19.+'
}
更新2
我认为我没有正确理解Android Studio的依赖系统。我刚从依赖项中删除了appcompat和support,它仍然给了我同样的错误。我是否必须从某处删除最初包含的库?
的build.gradle
*注意 - 我再次添加了这两个库并尝试同步,以防万一。但没有任何变化。
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "taz.starz.footynews"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.android.support:support-v4:19.+'
compile project(':ParallaxScroll')
compile files('src/main/libs/Header2ActionBar-0.2.1.jar')
compile 'com.arasthel:gnavdrawer-library:+'
compile 'com.koushikdutta.ion:ion:1.2.4'
}
顶级build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
答案 0 :(得分:43)
更新:为我的案例找到了真正的解决方法。通过在build.gradle
中执行此操作,确保您的所有依赖项都没有默认包括support-v4 r21:
compile("com.blahblah:blah:123") {
exclude group: 'com.android.support', module:'support-v4'
}
您可以将exclude
添加到所有库中,然后逐个删除,直到找出哪个库正在引入support-v4
并向您提供错误。并将exclude
留在那个。
此处提交了一个新错误:https://code.google.com/p/android/issues/detail?id=72430
假设您使用的是支持存储库,解决方法是注释或删除该行
<version>21.0.0-rc1</version>
在<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
答案 1 :(得分:24)
使用以下内容进行最后更新:
compile 'com.android.support:support-v4:20.+'
或
compile 'com.android.support:support-v4:+'
您正在 L-preview 中使用支持库。
这些支持库声明minSdkVersion L
。
你必须强迫minSdkVersion
成为&#39; L&#39; (查看文档)
这是因为这些API不是最终的。这是一种阻止在最终API 21设备上安装应用程序或使用支持lib 21-r1在商店中发布应用程序的方法。
使用
compile 'com.android.support:support-v4:19.1.0'
你正在使用&#34; old&#34;支持库19.1.0。
答案 2 :(得分:23)
我遇到了同样的问题,因为我的某个依赖项指定了&#39; support-v7:+&#39;作为依赖。我可以使用gradle dependencies
Gradle为force resolution提供了一种特定版本的方法。我最终在我的build.grade
:
compile('com.android.support:appcompat-v7:19.1.0') {
// really use 19.1.0 even if something else resolves higher
force = true
}
答案 3 :(得分:9)
compile('com.android.support:support-v4:19.1.0'){
force = true
}
这对我有用
答案 4 :(得分:1)
这是正确的。新的支持库与旧的Android版本不兼容。
将您的助手改为:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.1.+'
compile 'com.android.support:support-v4:19.1.+'
}
我希望你还有这样的事情:
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
答案 5 :(得分:1)
我收到了错误:
任务执行失败&#39;:app:processDebugManifest&#39;。
清单合并失败:uses-sdk:minSdkVersion 1不能小于库中声明的版本4 C:\ Users \用户伊戈尔\应用程序数据\本地\ Android的\ SDK \ SAMPLES \ Android的21_1 \遗留\ ApiDemos \程序\建立\ \中间体爆炸-AAR \ com.android.support \支持-V4 \ 21.0.3 \ AndroidManifest .XML 建议:使用工具:overrideLibrary =&#34; android.support.v4&#34;强迫 使用
然后我通过在 defaultConfig gradle块中添加以下内容来解决它:
minSdkVersion 15
targetSdkVersion 21
答案 6 :(得分:0)
在Android SDK Manager安装&#34; Android支持信息库&#34;来自&#34;额外&#34;组。它帮助到我。当我添加&#34;排除群组:&#39; com.android.support&#39;,模块:&#39; support-v4&#39;&#34;构建完成,但发生了一些其他错误