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

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

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

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

Есть идеи?

6 ответов

Решение

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

Я использую Артефакт Android 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 
    } 
} 

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'
}

В Android Studio Bumblebee, объявления maven в settings.gradleфайл (вместо build.gradleфайл, как в предыдущей версии AS)

      dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven {
           ....
        }
    }
}
  1. Снимите флажок "Автономная работа" в меню "Файл"> "Настройки"> "Gradle"> "Глобальные настройки Gradle".
  2. Повторно синхронизируйте проект, например, перезапустив Android Studio
  3. После синхронизации вы можете снова проверить опцию, чтобы работать в автономном режиме.

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

Примечание: специальная версия для Android, трейлинг "g":

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Другие вопросы по тегам