First and foremost, I am aware of the existence of this question - How do I add a library project to Android Studio? - and unfortunately, it has not helped me.
My goal is rather simple. I want to write an Android app using the Android Studio IDE (0.2.11), and the Guava libraries in my code.
I do not know Gradle, I've only started using Android Studio and my Visual Studio/C# background has dumbed me down, for which I apologize (in that Mickey Mouse world, you typically just add a library reference and off you go).
I will document my steps with screenshots. I mostly followed advice given in this answer.
I created a libraries
folder under my project folder.
I cloned Guava repository into it.
Files successfully appeared.
I went to Project Structure
and selected Import Module
.
I selected Create module from existing sources
and agreed to all the default choices.
I updated my settings.gradle
file to include ':libraries:guava', ':Test'
:
And my build.gradle
file with compile project(":libraries:guava")
:
But all I'm getting whenever I'm trying to rebuild the project is:
Error: Gradle: A problem occurred configuring project ':Test'. > Failed to notify project evaluation listener. > Configuration with name 'default' not found.
I did try putting a build.gradle
as below in the guava
folder:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:13.0.+' } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } }
(as the aforementioned answer says).
I have googled up and down to find the "correct" build.gradle
for Guava.
https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild - didn't help me, either.
I did try countless things which I will not describe here as they were rather haphazard - I tried adding a module dependency, I tried turning Use auto-import
on in Gradle settings
, etc.
I know it's not a way of solving issues and I promise I will diligently read Gradle's User Guide from 1 through 5.4.2 to 7.3, but I can't believe this is really prerequisite to achieve something as unremarkable as merely adding a library to a project? Why is there no default build.gradle
file from which one could start to fiddle with all sorts of things if necessary?
And the real question - how do I create an app (in Android Studio) that builds, actually runs on an Android device and on the top of that allows me to use Guava so I could sort a map by values without writing 50 lines of code? :)
Sorry about the chatty tone of my question, I know the drill around here, it's just my way of venting my frustration off.
Judging by how many votes were casted for questions and answers that tackled similar issues, I'm sure I'm not the only one who would benefit from some more instructions. I would start a bounty on it straight away, but the rules forbid me.
Dependency on Guava can be added in your Java project by using any build system. You can also just manually download JARs from Guava's release page for the classes, sources and javadocs. Note that JDK 1.6 or newer is required for Guava 12.0 through 20.0. See Version list for more info.
If you just need to use a stable, released version of the Guava libraries, importing it is extremely easy.
Just go to the build.gradle
file of the module where you want to use the library (i.e GuavaTestProject/GuavaTest/build.gradle
) and, right after
repositories { mavenCentral() }
add a Maven dependency:
dependencies { compile group: 'com.google.guava', name: 'guava', version: '15.0' }
Rebuild your project if needed and that's all (tested right now with a fresh project created with Android Studio 0.2.13).
If you really need to include the source code of the Guava library and compile it yourself as a module of your Gradle build that's an entirely different problem because Guava is build with Maven and so you need to move the Guava build system from Maven to Gradle, which I think is overwhelmingly complex for your goals.
If you just need to browse the source or view it while debugging, what I would do is:
Download Guava source code on a separate folder:
git clone https://code.google.com/p/guava-libraries/ git checkout v15.0
When Android Studio doesn't find the sources, click on "Attach sources" and point to this alternative location.
I think if you don't need to actually modify and compile Guava source code this is the easiest solution.
dependencies { compile 'com.google.guava:guava:19.0' }
Source: https://github.com/google/guava
EDIT: As of v22, there's specific guava version for Android.
dependencies { compile 'com.google.guava:guava:22.0-android' }
* Thanks Sam :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With