将 commons-io 依赖添加到 Android Studio 中的 gradle 项目

Posted

技术标签:

【中文标题】将 commons-io 依赖添加到 Android Studio 中的 gradle 项目【英文标题】:Add commons-io dependency to gradle project in Android Studio 【发布时间】:2013-07-27 13:29:09 【问题描述】:

很简单的问题——如何在gradle android项目中添加commons-io依赖?

我尝试了以下

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.5.+'
    


apply plugin: 'android'

dependencies 
    compile files('libs/android-support-v4.jar')
    compile group: 'commons-io', name: 'commons-io', version: '2.0.1'

但它不起作用 错误是

Gradle:配置项目“:LearnIt”时出现问题。

未能通知项目评估侦听器。 无法解析配置“:LearnIt:_DebugCompile”的所有依赖项。 > 找不到 commons-io:commons-io:2.0.1。 要求: learnit:LearnIt: 未指定

【问题讨论】:

如果有人需要所有 apache 公共库 - mvnrepository.com/artifact/org.apache.commons 【参考方案1】:

截至目前(2014 年 5 月),如果您使用默认生成的项目,它实际上非常简单(尽管很难找到说明!

打开二级 build.gradle,在dependencies 添加下面一行:

compile "commons-io:commons-io:+"

这将获得最新版本的commons-io。我的完整文件如下所示:

apply plugin: 'android'

android 
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig 
        minSdkVersion 18
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    
    buildTypes 
        release 
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        
    


dependencies 
    compile "commons-io:commons-io:+"

【讨论】:

效果很好 - 将 IOUtils 作为项目的一部分非常有用。 感谢您,但不要在依赖项中使用 + 运算符。这对版本差异不利。 它有利有弊。 @OmerKarakose 是对的。最好坚持一个版本,不要总是拉最新版本。 @Timmmm 你从哪里找到的?【参考方案2】:

您需要声明一个要从中解析 commons-io 库的存储库(例如 MavenCentral):

buildscript 
    repositories 
        mavenCentral()
    

    dependencies 
        classpath 'com.android.tools.build:gradle:0.5.+'
    


apply plugin: 'android'

repositories
    mavenCentral()


dependencies 
    compile files('libs/android-support-v4.jar')

    compile group: 'commons-io', name: 'commons-io', version: '2.0.1'
    

【讨论】:

查看 buildscript repositories mavenCentral() 您已经在buildScript 中配置了它,但没有在构建文件本身中进行配置。 buildScript 用于声明自定义任务本身所需的其他依赖项,而不是正在构建的项目所需的依赖项。另请注意,Rene 是一个 gradle 提交者。他知道他在说什么。见gradle.org/docs/current/userguide/… 好的,谢谢!现在清楚了,但一开始有点混乱 我不断收到此错误:无法加载类 'org.apache.commons.io.FileUtils'。 Android Studio 3.2.1 这些天这样的事情也可以工作:实施“commons-io:commons-io:2.4”【参考方案3】:

使用gradlePlease获取依赖。

将以下内容添加到您的 app/build.gradle 文件中:

dependencies 
    compile 'org.apache.commons:commons-io:1.3.2'

//更新

implementation group: 'commons-io', name: 'commons-io', version: '2.6'

【讨论】:

下载jar -> commons.apache.org/proper/commons-io/download_io.cgi 这对我有用:编译 'commons-io:commons-io:2.4' - for jcentre() repo。 @Sam 你从哪里找到的?【参考方案4】:

使用 gradle 更新 2020

// Home Page : https://commons.apache.org/

// IO - https://commons.apache.org/proper/commons-io/
implementation group: 'commons-io', name: 'commons-io', version: '2.7'

// String / Text 
implementation group: 'org.apache.commons', name: 'commons-text', version: '1.8'

【讨论】:

以上是关于将 commons-io 依赖添加到 Android Studio 中的 gradle 项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android Gradle中添加原生so文件依赖

如何在Android Gradle中添加原生so文件依赖

JAVA在Windows使用apache commons-csv导出CSV解决方案

Jar 从本地库中选择错误的依赖版本

关于文件上传

图片上传过程