Android Studio / IntelliJ에서 Maven 종속성을 가져 오는 방법은 무엇입니까?


92

Android Studio의 기본 마법사를 사용하여 새 Android 프로젝트를 만들었습니다. 앱을 컴파일하고 내 장치에 배포했습니다. 모든 것이 좋습니다.

이제 Maven에서 사용할 수있는 외부 라이브러리를 가져오고 싶습니다. ( http://square.github.io/picasso/ ). 모듈 속성으로 이동하여 Maven 라이브러리를 추가했습니다. 종속성 목록에 올바르게 표시됩니다. 또한 편집기에 표시되며 코드에서 올바르게 사용할 수 있습니다.

그러나 컴파일 타임에 Gradle 오류가 발생합니다. 클래스를 찾을 수 없습니다.

어떤 아이디어?

답변:


71

0.8.9 버전부터 Android Studio는 기본적으로 Maven Central Repository를 지원합니다. 따라서 외부 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 ()}
요하네스

1
때때로 우리는 단순히 의존성에서 사용할 수 없으며, 외부에서 추가 할 것입니다. 운동, 여기 샘플 ... repositories {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android : ksoap2-android : 3.6.0 '
Nandha

81

springframework android artifact를 예로 사용하고 있습니다.

build.gradle 열기

그런 다음 플러그인 적용 과 동일한 수준에서 다음을 추가합니다 . '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가 표시되지 않으면 'External Libraries'아래에 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 {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencies {classpath 'com.android.tools.build:gradle:0.4'}} 플러그인 적용 : 'android'dependency {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}}```오류 : com.squareup.picasso : picasso : 1.0.1을 찾을 수 없습니다.
munkay

1
나는 당신의 의견과 일치하는 수정 build.gradle와 답을 갱신 @munkay
user1568967

18
핵심 부분은 IDE를 다시 시작하는 것입니다. 이 IntelliJ 버전은 변경 사항을 적용하지 않습니다.
Jimmy2Times

예, 다시 시작한 후 모든 것이 정상입니다.
firen

1
"핵심 부분은 IDE를 다시 시작하는 것입니다." 세상에. 이것은 2016 년입니다.하지만 그래, Jimmy2Times에게 감사합니다.
Guy Moreillon 16.01.08

6

안드로이드 스튜디오 3

Maven Central에 대해 이야기하는 답변은 Android Studio가 현재 JCenter를 기본 저장소 센터로 사용하기 때문에 날짜가 있습니다. 프로젝트의 build.gradle 파일은 다음과 같아야합니다.

repositories {
    google()
    jcenter()
}

개발자가 Maven 저장소가있는 한 (Picasso가 수행하는 작업), 앱의 build.gradle 파일의 종속성 섹션에 한 줄만 추가하면됩니다.

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

4
  1. 파일> 설정> Gradle> 글로벌 Gradle 설정에서 "오프라인 작업"을 선택 취소하십시오.
  2. 예를 들어 Android Studio를 다시 시작하여 프로젝트를 다시 동기화합니다.
  3. 동기화되면 옵션을 다시 확인하여 오프라인으로 작업 할 수 있습니다.

0

시도해보십시오 itext. build.gradle이 게시물의 최신에 대한 종속성을 추가하십시오.

참고 : Android 용 특수 버전, 뒤에 "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.