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

实现版本的build.gradle问题

万俟渝
2023-03-14
apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.app.sin.retrolist"
        minSdkVersion 18
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    } }

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.jakewharton:butterknife:8.8.1'
    implementation 'com.android.volley:volley:1.1.1'
    implementation 'com.squareup.picasso:picasso:2.71828' }

共有1个答案

壤驷向明
2023-03-14

要了解依赖项树中包含特定依赖项的原因,您可以(假设您的主模块名为app,并且您在macOS上)运行一个简单的命令:

./gradlew app:dependencies

在控制台输出中,您将看到完整的依赖关系树以及如何解析库版本。

处理类似这样的依赖冲突的正确方法是通过解释定义一个解决策略:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:exifinterface:27.1.1'
    }
}
dependencies {
    ...
    implementation 'com.android.support:exifinterface:27.1.1'
}

不太正确,因为您的模块不直接依赖于这个库,所以,如果您的依赖项的未来版本不再依赖于它,即使您不需要它,它仍然会被包括在已解析依赖项列表中。

更好的是,您可以定义:

ext {
    supportLibVersion = "27.1.1"
}

在主build.gradle文件中,然后在任何需要的地方使用它:

configurations.all {
    resolutionStrategy {
        force "com.android.support:exifinterface:$rootProject.supportLibVersion"
    }
}

dependencies {
    ...
    implementation "com.android.support:appcompat-v7:$rootProject.supportLibVersion"
    implementation "com.android.support:recyclerview-v7:$rootProject.supportLibVersion"
    implementation "com.android.support:cardview-v7:$rootProject.supportLibVersion"
    ...
}
 类似资料:
  • 本文向大家介绍实现文本的竖向排版相关面试题,主要包含被问及实现文本的竖向排版时的应答技巧和注意事项,需要的朋友参考一下

  • 如何使用SpringBoot和SpringSecurity将基本授权(登录密码)与其他服务(google、github、facebook)的授权结合起来?有很多信息,我不知道如何正确解决这个问题。我将非常感谢教程或链接到材料。

  • 我在Xamarin(VisualStudio2019)中构建了我的第一个应用程序,我想将它部署到我的android手机上。(事实上,我并不真的想公开这个应用程序——现在就用我的手机就可以了。我只是不想让它生根。) 我遵循这些指南: https://docs.microsoft.com/de-de/xamarin/android/deploy-test/release-prep/index?tabs

  • 问题内容: 我想使用更新版本的l2switch插件,但是当我尝试编译项目时,出现以下错误: 我认为问题不在我的.m2文件夹中,因为我能够正确地编译Openflowplugin项目。另外我正在使用Java 8.0,我的操作系统是Windows 10(我正在使用Maven插件通过提示符进行编译)我正在使用的命令是mvn clean install -U -DskipTests ps:我还没有编辑l2s

  • 问题内容: 在我的Ubuntu计算机上,我尝试在本地安装jenkins。我遵循了此指南: https://wiki.jenkins- ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu 但是当我运行时,出现此错误: 似乎是较旧的安装阻止了安装。我试图删除: 有任何想法吗? 问题答案: 您需要通过软件包管理器卸载旧的Jenkins版本,而不仅仅是删

  • 我试图使用一个旧版本的appcompat-v7。我的build.gradle有以下几行: 完整的构建。格雷德尔如下: 但是,运行时会出现以下错误: 错误:配置项目“:app”时出现问题。 无法解析配置“”的所有依赖项:应用:\ u debugCompile'。找不到com。Android支持:appcompat-v7:23.0.0。在以下位置搜索:[删除链接]文件:/C:/Users/j/AppD