додати сховище Maven до build.gradle


118

Я додав спеціальний сховище maven для build.gradle в Android Studio, але залежність не знайдена

Maven сховище та залежність

<repository>
    <id>achartengine</id>
    <name>Public AChartEngine repository</name>
    <url>https://repository-achartengine.forge.cloudbees.com/snapshot/</url>
</repository>

<dependency>
    <groupId>org.achartengine</groupId>
    <artifactId>achartengine</artifactId>
    <version>1.2.0</version>
</dependency>

build.gradle

buildscript {
    repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile group: 'org.achartengine', name: 'achartengine', version: '1.2.0'
}

android {
    compileSdkVersion 19
    buildToolsVersion "19"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

Повідомлення про помилку в Android Studio:

A problem occurred configuring root project 'My-MobileAndroid'.
> Failed to notify project evaluation listener.
> Could not resolve all dependencies for configuration ':_DebugCompile'.
  > Could not find org.achartengine:achartengine:1.2.0.
    Required by:
        :My-MobileAndroid:unspecified

Що мені не вистачає в build.gradle?

Відповіді:


88

Вам потрібно буде визначити сховище поза buildscript. Блок buildscriptконфігурації встановлює лише сховища та залежності для класного шляху вашого сценарію збирання, але не для вашої програми.


це сортувало залежність, але Android Studio не перезавантажував сховища, тому "імпортуйте org.achartengine.chart. *;" не вдалося, ви знаєте, як "оновити" сховища?
Андре Рікардо

3
Дуже важливо слідувати. На це витратили 15 хвилин
Нітін Бансал

чи повинні як зовні, так і зовні buildscript repositoriesмати однакові віддалені сховища?
Р.Абеді

158

Після

apply plugin: 'com.android.application'

Ви повинні додати це:

  repositories {
        mavenCentral()
        maven {
            url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
        }
    }

@ Бенджамін пояснив причину.

Якщо у вас є Maven з аутентифікацією, ви можете використовувати:

repositories {
            mavenCentral()
            maven {
               credentials {
                   username xxx
                   password xxx
               }
               url    'http://mymaven/xxxx/repositories/releases/'
            }
}

Важливо порядок.


6
Як додати автентифікацію хмарних бджіл у файл gradle?
індер

Як я можу змінити Android Studio так, щоб сховище Maven було додано до build.gradle за замовчуванням. Я про це забуваю і мушу знову виявити, чому бібліотеки не завантажуються.
Майк

36

Користувачі Android Studio:

Якщо ви хочете скористатись класом, перейдіть на сторінку http://search.maven.org/ і шукайте Maven repo. Потім натисніть на "останню версію", і на сторінці з деталями внизу ви побачите "Gradle", де потім зможете скопіювати / вставити це посилання у build.gradle програми.

введіть тут опис зображення


1
Ти зробив мій день, дуже дякую. Крім того, чому цього немає на офіційній сторінці ZXing gh? Знайти це не повинно бути так важко ...
Надія Кастеллі

8

Ви повинні додати repositoriesдо файлу збірки. Для сховищ Maven вам потрібно встановити префікс ім'я сховищаmaven{}

repositories {
  maven { url "http://maven.springframework.org/release" }
  maven { url "http://maven.restlet.org" }
  mavenCentral()
}

6

Додайте сховище maven поза buildscriptблоком конфігурації вашого основного build.gradleфайлу наступним чином:

repositories {
        maven {
            url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
        }
    }

Переконайтесь, що ви додали їх після наступного:

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