15

I have a library project. I want to use Android's new build system. Currently I'm encountering a quite annoying scenario.

I have my dependencies defined on gradle.build but they never appear under External Libraries in Android Studio. Hence all the references to those libraries are marked as errors.

When I run gradle dependencies on the command line it shows the full dependencies tree and compiles successfully. The problem clearly is with Android Studio.

I tried to restart the IDE/OS but nothing.

This is my gradle.build

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.1'
    }
}

apply plugin: 'android-library'

apply plugin: 'idea'

repositories {
    mavenCentral()
}

dependencies {
    compile 'junit:junit:4.11'
    compile 'org.robolectric:robolectric:2.1:jar-with-dependencies'

    compile 'com.google.android:android:4.1.1.4'
    compile 'com.google.android:support-v4:r7'

    compile 'info.cukes:cucumber-java:1.1.3'
    compile 'info.cukes:cucumber-junit:1.1.3'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        versionCode 1
        versionName "0.3-SNAPSHOT"
        minSdkVersion 15
        targetSdkVersion 17
    }
}

UPDATE

This issue seems to be fixed on latest Android Studio version (0.2.5)

3 Answers 3

15

You can use 'Tools->Android->Sync project with Gradle files'. It will resolve the dependencies, download, and add them to external libraries.

1
  • 1
    This worked for me. I am using Android Studio 3.2 and this option is now under "Files - Sync project with Gradle files"
    – se22as
    Oct 29, 2018 at 9:21
11

Unfortunately, in the current version of Android Studio, the IDE is not completely integrated with the build system (gradle). You have to add the library once in gradle.build for compilation, and once via the GUI for code completion.

Right click on your project, select "Open Module Settings". Acknowledge the warning. Select "Libraries", "+", and add the library you are using. You can search for libraries on Maven in the dialog that appears. You should select your libs dir for the jar. Finally, add the library to your code's module. If your app is MyApp, you probably have MyApp and MyAppProject. You need to add it to MyApp. (You can probably also directly add it from the "Modules" page.)

To additionally get gradle to add the jar to your apk, make the following changes to your grade file. Replace:

compile 'org.jsoup:jsoup:1.6.1'

and similar with

compile files('libs/jsoup-1.6.1.jar')

Now it should all work.

3
  • You answer sounds correct. When I have time to test it, I will accept it. Btw, I opened a issue on AOSP tracker.
    – Axxiss
    Jun 8, 2013 at 14:46
  • It is now August 1, is this still true with Android Studio 0.2.2 ? Jul 31, 2013 at 17:10
  • 3
    how can i located libraries in External Libraries on build.gradle?
    – Akexorcist
    Jul 31, 2013 at 21:22
0

I commented following line from build.gradle file and it started working.

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

enter image description here

Previously dry build operation would succeed but when I would try to run on device there would be error

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define  Landroid/support/annotation/AnimRes;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.