【问题标题】:Gradle build error."minsdkversion 14 cannot be different than version l declared in library"?Gradle 构建错误。“minsdkversion 14 不能与库中声明的版本 l 不同”?
【发布时间】:2015-12-03 14:45:36
【问题描述】:

大家好,我是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

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

【问题讨论】:

  • 从 AndroidManifest.xml 中删除 属性,如果你已经声明了

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


【解决方案1】:

您的 lib 文件夹中似乎有一个以前版本的应用兼容版本,专门用于 android L。

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

在您的情况下,buildToolVersion 应该是“21.1.2”。

【讨论】:

    【解决方案2】:

    基本上,这就是 android studio 在你的编译中使用.+ 抱怨/建议NOT的原因。

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

    它强制使用绝对最新版本的 appcompat 21 进行编译,即com.android.support:appcompat-v7:21.0.0-rc1(从错误中可以看出)。该版本不允许minSdkVersion 15 - 它是为棒棒糖制作的。将您的编译 appcompat 更改为允许 minSdkVersion 15 解决问题的版本号。

    【讨论】:

      【解决方案3】:

      你的 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. Manifest 中删除 minSdkVersion 版本。您已经在 build.gradle 中声明了它。
      2. 用这个compileSdkVersion 21 buildToolsVersion '21.1.2'代替你的。
      3. 编译compile 'com.android.support:appcompat-v7:21.0.1'

      首先从您的 Manifest 中删除这一行。

      <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'
      
      }
      

      【讨论】:

      【解决方案4】:

      这是你的问题。

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

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

      您的 sdk 中不应包含此文件夹。检查 SDK 管理器 是否已更新。

      然后你可以修改你的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'
      

      【讨论】:

      • 谢谢Gabriele Mariotti。我起初不明白你的回答,但过了一段时间后我明白compile sdkversion应该与支持库版本匹配。然后我做到了,我的gradle同步成功了。
      猜你喜欢
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多