当前位置: 首页 > 知识库问答 >
问题:

Android Studio gradle未编译指定的版本

白青青
2023-03-14

我已经开发这个小项目好几天了,但今天突然,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和支持,它仍然给我同样的错误。我必须从某个地方删除最初包含的库吗?

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()
    }
}

共有3个答案

黄朗
2023-03-14

我遇到的问题与我的一个依赖项将“support-v7:”指定为依赖项时的问题相同。我可以使用gradle依赖项

Gradle提供了一种强制解析特定版本的方法。我最终在我的构建中得到了这个。等级

compile('com.android.support:appcompat-v7:19.1.0') {
    // really use 19.1.0 even if something else resolves higher
    force = true 
}
冀弘厚
2023-03-14

对于上次更新,请使用以下命令:

compile 'com.android.support:support-v4:20.+'

compile 'com.android.support:support-v4:+'

您正在使用L-预览中的支持库。

这些支持库声明minSdkVersion L

您必须强制minSdkVersion为“L”(检查文档)

这是因为这些API不是最终的。这是一种防止在最终API 21设备上安装应用程序或使用support lib 21-r1在应用商店上发布应用程序的方法

使用

compile 'com.android.support:support-v4:19.1.0'

您正在使用“旧”支持库19.1.0。

蒲深
2023-03-14

更新:为我的案例找到了真正的解决方案。通过在构建中执行此操作,确保没有任何依赖项以静默方式包含support-v4 r21。格雷德尔

compile("com.blahblah:blah:123") {
    exclude group: 'com.android.support', module:'support-v4'
}

您可以将排除添加到所有库,然后逐个删除,直到您找出是哪一个拉入了support-v4并给出了错误。并留下排除

这里有一个新的bug:https://code.google.com/p/android/issues/detail?id=72430

假设您正在使用支持存储库,解决方法是注释或删除该行

<version>21.0.0-rc1</version>

在本地Maven回购列表文件

 类似资料:
  • 问题内容: 我在netbeans上编写了一个Maven代码,大约有2000多行。当我在netbeans上编译它时,一切都很好,但是如果我想在命令行上运行它,则会出现以下错误: 我尝试使用Java 1.3.1,编译器错误,但出现了更多错误。我从其他帖子中发现我应该修改pom.xml,但我不知道如何。这是我的pom.xml 如果您能帮助我,那就太好了。 问题答案: 请参阅配置页面以获取Maven编译器

  • 我用Netbeans编写了一些Maven代码,大约有2000多行。当我在Netbeans上编译它时,一切都很好,但如果我想在命令行上运行它,我会得到这些错误: 我尝试使用Java 1.3.1,编译器错误,但我得到更多的错误。我从其他帖子中发现我应该修改,但我不知道如何修改。下面是我的 如果你能帮我就太好了!

  • 我编写了一个没有父级的简单pom.xml来尝试这个方法,因此不涉及pluginManagement。我还检查了maven-model-builder中的super super pom-4.0.0.xml以确认maven-bundle-plugin不存在。此插件版本没有指定在任何地方。 maven如何确定采用哪个版本?

  • 一、配置微信小程序 配置小程序服务域名、获取小程序ID和密钥 二、uni-app编译版 1、进到商城后台下载源码 2、下载完成后打开,解压打开代码修改api路径,示例(https://baidu.com) 3、部署到微信开发者工具上面 4、到微信开发者工具上面上传代码

  • MPlayer WW编译版简介: 继承了KK版MPlayer的所有功能,包括Windows下的简单GUI、自动连续播放等。(感谢KK提供的patch源代码) 增加了OpenGL驱动,可以兼容Vista的Aero特效,并且在高性能显卡下可以获得更好的速度和效果。 增加了PMP分离器,优化部分解码器优先级。 增加了meditor2程序(MPlayer首选项),可对MPlayer进行图形化设置。 增加了

  • 变量定义 nsi脚本的变量定义用Var关键字,后跟变量名,变量是全局的并且是大小写敏感的。变量引用时需要加上前缀$。 除了用户自定义的变量外,nsi脚本中与定义寄存器变量$0~$9,$R0~$R9用于参数传递,以及系统变量用于特定用途,这些变量主要有: $INSTDIR,$OUTDIR,$CMDLINE,$LANGUAGE(这些变量都是可写的)。 $PROGRAMFILES,$COMMONFILE