Как импортировать зависимость Maven в Android Studio/IntelliJ?

Я создал новый проект Android, используя мастер по умолчанию в Android Studio. Скомпилировано и развернуло приложение на моем устройстве. Все хорошо.

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

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

Любые идеи?

Ответ 1

Начиная с версии 0.8.9, Android Studio по умолчанию поддерживает Центральный репозиторий Maven. Таким образом, чтобы добавить внешнюю зависимость от maven, вам нужно отредактировать файл build.gradle модуля и вставить строку в раздел зависимостей следующим образом:

dependencies {

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

}

Появится сообщение, похожее на "Синхронизировать сейчас..." - щелкните его и дождитесь загрузки maven-репо вместе со всеми его зависимостями. В нижней строке состояния появится сообщение о том, что происходит с загрузкой. По завершении этого, импортированный файл JAR вместе со своими зависимостями будет указан в дереве внешних репозиториев в окне "Браузер проекта", как показано ниже.

enter image description here

Некоторые дополнительные объяснения здесь: http://developer.android.com/sdk/installing/studio-build.html

Ответ 2

В качестве примера я использую артефакт для артефакта springframework в качестве примера

open 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 должна отображаться банка и ее зависимости в разделе "Внешние библиотеки" если он не появляется, попробуйте перезапустить 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 
    } 
} 

Ответ 3

  • Снимите флажок "Автономная работа" в "Файл" > "Настройки" > Gradle > Глобальный Gradle Настройки
  • Повторите попытку проекта, например, перезапустив Android Studio
  • После синхронизации вы можете снова проверить параметр для работы в автономном режиме.

Ответ 4

Обновленный ответ

Ответы, которые говорят о Maven Central, датируются с тех пор, как Android Studio использует JCenter в качестве центра репозитория по умолчанию. В файле build.gradle проекта должно быть что-то вроде этого:

repositories {
    jcenter()
}

Итак, пока у разработчика есть свой репозиторий Maven (который Пикассо делает), тогда вам нужно будет добавить одну строку в раздел зависимостей вашего файла build.gradle приложения.

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

Android Studio 3.0

С Android Studio 3.0 это будет выглядеть следующим образом:

Проект build.gradle

repositories {
    google()
    jcenter()
}

app build.gradle

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

Ответ 5

Попробуйте itext. Добавьте зависимость от вашего build.gradle для последней версии этого сообщения

Примечание: специальная версия для android, завершающая "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}