如何在Android Studio / IntelliJ中导入Maven依赖关系?


92

我使用Android Studio中的默认向导创建了一个新的Android项目。编译并将应用程序部署到我的设备上。一切都很好。

现在,我想导入一个在Maven上可用的外部库。(http://square.github.io/picasso/)。我去了模块属性,并添加了一个Maven库。它正确显示在依赖项列表中。另外,它显示在编辑器中,我可以在代码中正确使用它。

但是,在编译时,出现了Gradle错误:无法找到类

有任何想法吗?

Answers:


71

从0.8.9版本开始,Android Studio默认支持Maven中央存储库。因此,要添加外部Maven依赖项,您需要做的就是编辑模块的build.gradle文件,并在依赖项部分中插入一行,如下所示:

dependencies {

    // Remote binary dependency
    compile 'net.schmizz:sshj:0.10.0'

}

您将看到一条消息,类似于“立即同步...”-单击它,然后等待Maven存储库及其所有依赖项被下载。底部的状态栏中将显示一些消息,告诉您有关下载的情况。完成此操作后,导入的JAR文件及其依赖项将在“项目浏览器”窗口的“外部存储库”树中列出,如下所示。

在此处输入图片说明

此处提供一些进一步的说明:http : //developer.android.com/sdk/installing/studio-build.html


6
没有以下内容将无法正常工作:存储库{mavenCentral()}
Johannes

1
有时我们不能简单地在依赖项中使用,在外部进行锻炼,在此处进行示例...存储库{maven { url'oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ...编译'com.google .code.ksoap2-android:ksoap2-android:
3.6.0'– Nandha

81

我以springframework android构件为例

打开build.gradle

然后在与Apply插件相同的级别添加以下内容:'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
   compile group: 'org.springframework.android', name: 'spring-android-rest-template', version: '1.0.1.RELEASE'
}

您还可以将此符号用于Maven工件

compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'

如果您的IDE没有显示,请在“外部库”下显示jar及其依赖项(尝试重新启动IDE)(这在我身上发生了很多)

这是您提供的有效示例

buildscript { 
    repositories { 
        maven { 
            url 'repo1.maven.org/maven2'; 
        } 
    } 
    dependencies { 
        classpath 'com.android.tools.build:gradle:0.4' 
    } 
} 
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile group:'com.squareup.picasso', name:'picasso', version:'1.0.1' 
} 
android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 
    defaultConfig { 
        minSdkVersion 14 
        targetSdkVersion 17 
    } 
} 

1
我试过了,这是我的build.gradle文件:```buildscript {仓库{maven { url'repo1.maven.org/maven2 '}}依赖项{类路径'com.android.tools.build:gradle:0.4'}} Apply插件:'android'依赖项{编译文件('libs / android-support-v4.jar')编译组:'com.squareup.picasso',名称:'picasso',版本:'1.0.1'} android { compileSdkVersion 17 buildToolsVersion“ 17.0.0” defaultConfig {minSdkVersion 14 targetSdkVersion 17}}```错误:找不到com.squareup.picasso:picasso:1.0.1。
munkay

1
@munkay我使用与您的评论相匹配的更正build.gradle更新了答案
user1568967 2013年

18
关键部分是重新启动IDE。此版本的IntelliJ不接受更改。
Jimmy2Times 2013年

是的,重启后一切正常。
2013年

1
“关键部分是重新启动IDE”。我的天啊。这是2016年...但是,是的,谢谢Jimmy2Times。
Guy Moreillon

6

Android Studio 3

关于Maven Central的答案已过时,因为Android Studio现在使用JCenter作为默认存储库中心。您项目的build.gradle文件应具有以下内容:

repositories {
    google()
    jcenter()
}

因此,只要开发人员在那里拥有他们的Maven存储库(毕加索就是这样做的),那么您要做的就是在应用程序的build.gradle文件的dependencies部分中添加一行。

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}

4
  1. 在文件>设置>渐变>全局Gradle设置中取消选中“离线工作”
  2. 重新同步项目,例如通过重新启动Android Studio
  3. 同步后,您可以再次选中该选项以脱机工作。

0

尝试itextbuild.gradle截至本文发布为止,为您的最新添加依赖项

注意:适用于android的特殊版本,后跟“ g”:

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.