2013-06-02 285 views
11

我有一个库项目。我想要使​​用Android的新建版系统。目前我遇到了一个很烦人的场景。Android Studio缺少外部依赖关系

我在gradle.build上定义了我的依赖关系,但它们从未出现在Android Studio的外部库下。因此,对这些库的所有引用都标记为错误。

当我在命令行上运行gradle dependencies时,它会显示完整的依赖关系树并成功编译。显然,问题在于Android Studio。

我试图重新启动IDE/OS,但没有。

这是我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

这个问题似乎被固定在最新的Android Studio版本(0.2.5)

回答

11

不幸的是,在当前版本的Android Studio,IDE并没有完全集成在构建系统(gradle)中。您必须在gradle.build中编译一次库,然后通过GUI完成代码完成。

右键单击您的项目,选择“打开模块设置”。确认警告。选择“库”,“+”,并添加您正在使用的库。您可以在出现的对话框中搜索Maven中的库。你应该选择你的libs dir作为jar。最后,将库添加到代码的模块中。如果你的应用程序是MyApp,你可能有MyApp和MyAppProject。您需要将其添加到MyApp。 (您也可以直接从“模块”页面添加它。)

要额外获取gradle以将jar添加到您的apk,请对您的等级文件进行以下更改。替换:

compile 'org.jsoup:jsoup:1.6.1' 

和类似与

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

现在应该所有的工作。

+0

你的答案听起来很正确的。当我有时间测试它时,我会接受它。顺便说一句,我在AOSP跟踪器上打开了一个问题。 – Axxiss

+0

现在是8月1日,Android Studio 0.2.2仍然如此吗? –

+3

如何在build.gradle中找到外部库中的库? – Akexorcist

13

您可以使用'工具 - > Android->同步项目与Gradle文件'。它将解析依赖关系,下载并将它们添加到外部库。

+3

现在这是正确的答案。 –

0

我从build.gradle文件中注释下面的行,它开始工作。

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

enter image description here

以前干构建操作会成功,但是当我将尝试在设备运行会有错误

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