Як імпортувати залежність Maven в Android Studio / IntelliJ?


92

Я створив новий проект Android за допомогою майстра за замовчуванням в Android Studio. Складено та розгорнуто програму на моєму пристрої. Все добре.

Тепер я хочу імпортувати зовнішню бібліотеку, яка доступна на Maven. ( http://square.github.io/picasso/ ). Я перейшов до властивостей модуля та додав бібліотеку Maven. Він правильно відображається у списку залежностей. Крім того, він відображається в редакторі, і я можу правильно використовувати його в коді.

Однак під час компіляції я отримую помилку Gradle: не вдається знайти клас

Будь-які ідеї?

Відповіді:


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 ()}
Йоганнес,

1
Іноді ми не можемо просто використовувати в залежностях, додаючи зовні, це буде тренування, зразок тут ... repositories {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... скласти 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha

81

Я використовую артефакт андроїда springframework як приклад

відкрити 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 повинен показати 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 '}} залежності {classpath 'com.android.tools.build:gradle-0.4'}} застосувати плагін: залежності '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

18
Ключова частина - це перезапуск IDE. Ця версія IntelliJ не набирає змін.
Jimmy2Times

Так, після перезапуску все в порядку.
firen

1
"Ключова частина - це перезапуск IDE". О Боже мій. Це 2016 рік ... але так, дякую Jimmy2Times.
Guy Moreillon

6

Android Studio 3

Відповіді, які говорять про Maven Central, датовані, оскільки Android Studio зараз використовує JCenter як центр сховищ за замовчуванням. Файл build.gradle вашого проекту повинен мати приблизно таке:

repositories {
    google()
    jcenter()
}

Отже, поки розробник має там своє сховище Maven (що робить Пікассо), то все, що вам потрібно буде зробити, це додати один рядок до розділу залежностей файлу build.gradle вашого додатка.

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

4
  1. Зніміть прапорець біля пункту "Офлайн робота" у меню Файл> Налаштування> Gradle> Загальні налаштування Gradle
  2. Повторно синхронізуйте проект, наприклад, перезапустивши Android Studio
  3. Після синхронізації ви можете ще раз перевірити опцію роботи в автономному режимі.

0

Спробуйте itext. Додайте залежність до вашогоbuild.gradle останнього станом на цей пост

Примітка: спеціальна версія для андроїда з кінцевим значенням "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.