56

Very simple question - how to add commons-io dependency to gradle Android project?

I tried the following

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

but it does not work The error is

Gradle: A problem occurred configuring project ':LearnIt'.

Failed to notify project evaluation listener. Could not resolve all dependencies for configuration ':LearnIt:_DebugCompile'. > Could not find commons-io:commons-io:2.0.1. Required by: learnit:LearnIt:unspecified

Georgy Buranov
  • 1,296
  • 1
  • 16
  • 26
  • In case anyone needs all apache commons libs - http://mvnrepository.com/artifact/org.apache.commons – Jaydev May 10 '17 at 13:22

4 Answers4

80

As of now (May 2014) if you use the default generated project it is actually amazingly simple (though difficult to find instructions!

Open the second level build.gradle, and add the following line to the dependencies {:

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

That will get the latest version of commons-io. My complete file looks like this:

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:+"
}
Timmmm
  • 88,195
  • 71
  • 364
  • 509
51

you need to declare a repository where you want to resolve the commons-io library from (e.g. 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'
}    
Rene Groeschke
  • 27,999
  • 10
  • 69
  • 78
  • see buildscript { repositories { mavenCentral() } – Georgy Buranov Jul 27 '13 at 11:15
  • 4
    You have it configured inside `buildScript`, but not inside the build file itself. `buildScript` is used to declare additional dependencies needed by the custom tasks themselves, and not dependencies needed by the project being built. Also note that Rene is a gradle committer. He knows what he's talking about. See http://www.gradle.org/docs/current/userguide/organizing_build_logic.html#sec:external_dependencies – JB Nizet Jul 27 '13 at 11:27
  • ok thank you! Now it is clear, but was a little bit confusing at the beginning – Georgy Buranov Jul 27 '13 at 13:24
  • I am keep getting this error : Unable to load class 'org.apache.commons.io.FileUtils'. Android Studio 3.2.1 – sobby01 Dec 16 '18 at 12:54
  • Something like this would work these days as well: implementation "commons-io:commons-io:2.4" – ror Jul 29 '20 at 13:11
48

Use gradlePlease to get the dependency.

Add the following to your app/build.gradle file:

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

//UPDATED

implementation group: 'commons-io', name: 'commons-io', version: '2.6'
Sam
  • 6,215
  • 9
  • 71
  • 90
9

Update 2020 using gradle

// 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'
Abhishek Garg
  • 3,092
  • 26
  • 30