Làm thế nào để nhập sự phụ thuộc của Maven trong Android Studio / IntelliJ?


92

Tôi đã tạo một dự án Android mới bằng trình hướng dẫn mặc định trong Android Studio. Đã biên dịch và triển khai ứng dụng cho thiết bị của tôi. Tất cả đều tốt.

Bây giờ tôi muốn nhập một thư viện bên ngoài có sẵn trên Maven. ( http://square.github.io/picasso/ ). Tôi đã đi đến thuộc tính mô-đun và thêm một thư viện Maven. Nó hiển thị chính xác trong danh sách các phụ thuộc. Ngoài ra, nó hiển thị trong trình chỉnh sửa và tôi có thể sử dụng chính xác nó trong mã.

Tuy nhiên, tại thời điểm biên dịch, tôi gặp lỗi Gradle: không thể tìm thấy lớp

Bất kỳ ý tưởng?

Câu trả lời:


71

Kể từ phiên bản 0.8.9, Android Studio hỗ trợ Maven Central Repository theo mặc định. Vì vậy, để thêm một phụ thuộc maven bên ngoài, tất cả những gì bạn cần làm là chỉnh sửa tệp build.gradle của mô-đun và chèn một dòng vào phần phụ thuộc như sau:

dependencies {

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

}

Bạn sẽ thấy một thông báo xuất hiện như 'Sync now ...' - hãy nhấp vào nó và đợi repo maven được tải xuống cùng với tất cả các phụ thuộc của nó. Sẽ có một số thông báo trong thanh trạng thái ở phía dưới cho bạn biết điều gì đang xảy ra liên quan đến việc tải xuống. Sau khi hoàn thành việc này, tệp JAR đã nhập cùng với các tệp phụ thuộc của nó sẽ được liệt kê trong cây Kho lưu trữ Bên ngoài trong cửa sổ Trình duyệt Dự án, như được hiển thị bên dưới.

nhập mô tả hình ảnh ở đây

Một số giải thích thêm ở đây: http://developer.android.com/sdk/installing/studio-build.html


6
Không hoạt động nếu không có: repositories {mavenCentral ()}
Johannes

1
Đôi khi chúng ta không thể chỉ sử dụng trong các phần phụ thuộc, việc thêm bên ngoài sẽ tập luyện, hãy lấy mẫu tại đây ... kho {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha

81

Tôi đang sử dụng tạo tác android springframework làm ví dụ

mở build.gradle

Sau đó, thêm phần sau ở cùng cấp như áp dụng plugin: 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

bạn cũng có thể sử dụng ký hiệu này cho các tạo tác maven

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

IDE của bạn sẽ hiển thị jar và các phụ thuộc của nó trong 'Thư viện bên ngoài' nếu nó không hiển thị, hãy thử khởi động lại IDE (điều này đã xảy ra với tôi một chút)

đây là ví dụ mà bạn đã cung cấp hoạt động

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
Tôi đã thử điều đó, đây là tệp build.gradle của tôi: `` buildcript {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencies {classpath 'com.android.tools.build:gradle:0.4'}} áp dụng plugin: 'android' 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}} `` `Lỗi: Không thể tìm thấy com.squareup.picasso: picasso: 1.0.1.
munkay

1
@munkay Tôi cập nhật các câu trả lời với một build.gradle điều chỉnh phù hợp với nhận xét của bạn
user1568967

18
Phần quan trọng là khởi động lại IDE. Phiên bản này của IntelliJ không có các thay đổi.
Jimmy2Times

Có, sau khi khởi động lại mọi thứ đều ổn.
firen

1
"Phần quan trọng là khởi động lại IDE". Chúa ơi. Đây là năm 2016 ... nhưng vâng, cảm ơn Jimmy2Times.
Guy Moreillon

6

Android Studio 3

Các câu trả lời nói về Maven Central đã được cập nhật kể từ khi Android Studio sử dụng JCenter làm trung tâm lưu trữ mặc định ngay bây giờ. Tệp build.gradle của dự án của bạn phải có một cái gì đó như sau:

repositories {
    google()
    jcenter()
}

Vì vậy, miễn là nhà phát triển có kho lưu trữ Maven của họ ở đó (mà Picasso làm), thì tất cả những gì bạn phải làm là thêm một dòng duy nhất vào phần phụ thuộc của tệp build.gradle của ứng dụng.

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

4
  1. Bỏ chọn "Làm việc ngoại tuyến" trong Tệp> Cài đặt> Gradle> Cài đặt Global Gradle
  2. Đồng bộ hóa lại dự án, chẳng hạn bằng cách khởi động lại Android Studio
  3. Sau khi đồng bộ hóa, bạn có thể kiểm tra lại tùy chọn để hoạt động ngoại tuyến.

0

Cố gắng itext. Thêm phụ thuộc vào của bạnbuild.gradle cho mới nhất kể từ bài đăng này

Lưu ý: phiên bản đặc biệt dành cho Android, dấu "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.