57

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

1

4 Answers 4

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:+" } 
Sign up to request clarification or add additional context in comments.

5 Comments

That works great - very useful to have IOUtils as part of the project.
Thanks for this but do not use + operator in dependencies. that is bad for version differences.
It has pros and cons.
@OmerKarakose is right. It is better to stick to one version and not pull the latest always.
@Timmmm From where did u find it?
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' } 

5 Comments

see buildscript { repositories { mavenCentral() }
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 gradle.org/docs/current/userguide/…
ok thank you! Now it is clear, but was a little bit confusing at the beginning
I am keep getting this error : Unable to load class 'org.apache.commons.io.FileUtils'. Android Studio 3.2.1
Something like this would work these days as well: implementation "commons-io:commons-io:2.4"
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' 

3 Comments

This did for me: compile 'commons-io:commons-io:2.4' - for jcentre() repo.
@Sam From where did u find it?
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' 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.