Android Studio gradle不会编译指定的版本

时间:2014-06-27 04:53:50

标签: android android-studio gradle android-gradle build.gradle

我几天来一直在开发这个小项目但是今天突然间,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()
    }
}

7 个答案:

答案 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

的本地Maven回购列表文件中

答案 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;构建完成,但发生了一些其他错误