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

92

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

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

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

Любые идеи?

мункай
источник

Ответы:

72

Начиная с версии 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

dodgy_coder
источник
6
Не работает без: репозиториев {mavenCentral ()}
Йоханнес
1
Иногда мы не можем просто использовать в зависимостях, добавляя внешнюю тренировку, пример здесь ... репозитории {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Нанда
81

Я использую в качестве примера артефакт android springframework

открыть 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 должна отображать банку и ее зависимости в разделе `` Внешние библиотеки '', если она не отображается, попробуйте перезапустить среду 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 
    } 
} 
user1568967
источник
1
Я пробовал это, вот мой файл build.gradle: `` buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencies {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 05
1
«Ключевая часть - перезапуск IDE». О, мой бог. Это 2016 год ... но да, спасибо Jimmy2Times.
Гай Морейллон 08
7

Android Studio 3

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

repositories {
    google()
    jcenter()
}

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

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}
Suragch
источник
4
  1. Снимите флажок «Автономная работа» в меню «Файл»> «Настройки»> «Gradle»> «Глобальные настройки Gradle».
  2. Выполните повторную синхронизацию проекта, например, перезапустив Android Studio.
  3. После синхронизации вы можете снова установить флажок для работы в автономном режиме.
ринкеш
источник
0

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

Примечание: специальная версия для android, в конце буква "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Том
источник