Gradle构建错误。“minsdkversion 14不能与库中声明的版本l不同”?

时间:2015-09-08 03:41:34

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

大家好我是android开发的新手。我昨天下载了最新版本的android studio 1.3.2。但是当我开始一个新项目进行测试时,gradle给我一个错误。 我的朋友是

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.example.niyamat.testing3"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

      dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.+'

}

错误是

Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be different than version L declared in library [com.android.support:appcompat-v7:21.0.0-rc1]   C:\Users\Niyamat\Documents\Testing3\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\21.0.0-rc1\AndroidManifest.xml

我知道有一些关于同样错误的问题,但我找不到任何好的解决方案。 那么请有人帮帮我吗?

4 个答案:

答案 0 :(得分:1)

你的Logcat是什么抛出

 Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be different than version L declared in library [com.android.support:appcompat-v7:21.0.0-rc1]

你应该做什么

  1. 清单中移除minSdkVersion版本。您已在 build.gradle 中声明了该内容。
  2. 请使用此compileSdkVersion 21 buildToolsVersion '21.1.2'代替您的。
  3. 编译compile 'com.android.support:appcompat-v7:21.0.1'
  4. 首先从清单中删除此行。

    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="22" />
    

    <强>最后

        apply plugin: 'com.android.application'
    
    android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    
    defaultConfig {
        applicationId "com.example.niyamat.testing3"
        minSdkVersion 15
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    }
    
          dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.1'
    
    }
    

答案 1 :(得分:0)

似乎你有一个以前版本的应用程序compat到特定于android L的lib文件夹。

另外,您应该将compileSdkVersionbuildToolVersiontargetSdkVersionappcompat-v7的版本设置为相同。

在您的情况下,buildToolVersion应为&#34; 21.1.2&#34;。

答案 2 :(得分:0)

基本上,这就是为什么android studio在你的编译中抱怨/暗示 NOT 使用.+的原因。

compile 'com.android.support:appcompat-v7:21.+'

它强制编译使用appcompat 21的绝对最后版本com.android.support:appcompat-v7:21.0.0-rc1(正如你从错误中看到的那样)。该版本不允许minSdkVersion 15 - 它是为Lollipop制作的。将您的编译appcompat更改为允许minSdkVersion 15解决问题的版本号。

答案 3 :(得分:0)

这是你的问题。

  

uses-sdk:minSdkVersion 15不能与库中声明的版本L不同[com.android.support:appcompat-v7:21.0.0-rc1]

您的sdk文件夹中包含appcompat 21的预览版,这很奇怪。 此版本随棒棒糖预览( api-L )一起发布,并具有minSdk = L。这是您出问题的原因(因为您有minSdkVersion 15

你的sdk中不应该有这个文件夹。如果已更新,请查看 SDK Manager

然后,您可以修改build.gradle删除+。

支持库v21

compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.2'
compile 'com.android.support:appcompat-v7:21.0.3'

支持库v22 (需要compileSdkVersion 22)

compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.android.support:appcompat-v7:22.1.1'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.1'

支持库v23 (需要compileSdkVersion 23)

compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.1'