Android Studio / IntelliJ'de Maven bağımlılığı nasıl içe aktarılır?


93

Android Studio'da varsayılan sihirbazı kullanarak yeni bir Android projesi oluşturdum. Uygulamayı derledim ve cihazıma yerleştirdim. Herşey iyi.

Şimdi Maven'de bulunan harici bir kitaplığı içe aktarmak istiyorum. ( http://square.github.io/picasso/ ). Modül özelliklerine gittim ve bir Maven kitaplığı ekledim. Bağımlılıklar listesinde doğru şekilde görünür. Ayrıca editörde görünüyor ve kodda doğru şekilde kullanabiliyorum.

Ancak, derleme zamanında bir Gradle hatası alıyorum: sınıf bulunamıyor

Herhangi bir fikir?

Yanıtlar:


72

0.8.9 sürümünden itibaren Android Studio, varsayılan olarak Maven Merkezi Deposunu desteklemektedir. Bu nedenle, harici bir maven bağımlılığı eklemek için tek yapmanız gereken modülün build.gradle dosyasını düzenlemek ve aşağıdaki gibi bağımlılıklar bölümüne bir satır eklemektir:

dependencies {

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

}

'Şimdi senkronize et ...' gibi bir mesaj göreceksiniz - tıklayın ve maven deposunun tüm bağımlılıkları ile birlikte indirilmesini bekleyin. Alt kısımdaki durum çubuğunda indirme ile ilgili neler olduğunu anlatan bazı mesajlar olacaktır. Bunu tamamladıktan sonra, içe aktarılan JAR dosyası, bağımlılıkları ile birlikte aşağıda gösterildiği gibi Proje Tarayıcısı penceresindeki Harici Depolar ağacında listelenecektir.

görüntü açıklamasını buraya girin

Burada bazı ek açıklamalar: http://developer.android.com/sdk/installing/studio-build.html


6
Şunlar olmadan çalışmaz: kod depoları {mavenCentral ()}
Johannes

1
Bazen bağımlılıklarda kullanamayız, dışarıdan ekleyerek çalışacağız, burada örnekleyeceğiz ... depoları {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... 'com.google .code.ksoap2-robot: ksoap2-robot: 3.6.0'
Nandha

82

Springframework android yapısını örnek olarak kullanıyorum

build.gradle'ı açın

Ardından, aşağıdaki eklentiyi uygulama düzeyinde ekleyin : 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
   compile group: 'org.springframework.android', name: 'spring-android-rest-template', version: '1.0.1.RELEASE'
}

bu gösterimi maven eserler için de kullanabilirsiniz

compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'

IDE'niz kavanozu ve bağımlılıklarını 'Harici Kitaplıklar' altında göstermeli, eğer görünmezse IDE'yi yeniden başlatmayı deneyin (bu benim başıma epeyce oldu)

işte size sağlamış olduğunuz örnek

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
Bunu denedim, işte build.gradle dosyam: `` buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} bağımlılıklar {classpath 'com.android.tools.build:gradle:0.4'}} eklenti uygulayın: 'android' bağımlılıkları {derleme dosyaları ('libs / android-support-v4.jar') derleme grubu: 'com.squareup.picasso', ad: 'picasso', sürüm: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` Hata: com.squareup.picasso bulunamadı: picasso: 1.0.1.
munkay

1
@munkay Yanıtı, yorumunuzla eşleşen düzeltilmiş bir build.gradle ile güncelledim
user1568967

18
Anahtar kısım IDE'yi yeniden başlatıyor. IntelliJ'in bu sürümü değişiklikleri almıyor.
Jimmy2Times

Evet, yeniden başlattıktan sonra her şey yolunda.
2013

1
"Anahtar kısım IDE'yi yeniden başlatıyor". Aman Tanrım. Bu 2016 ... ama evet, teşekkürler Jimmy2Times.
Guy Moreillon

7

Android Studio 3

Maven Central'dan bahseden cevaplar, Android Studio'nun artık varsayılan depo merkezi olarak JCenter'ı kullandığı için tarihlendirilmiştir. Projenizin build.gradle dosyası şunun gibi bir şeye sahip olmalıdır:

repositories {
    google()
    jcenter()
}

Geliştirici orada Maven deposuna sahip olduğu sürece (Picasso'nun yaptığı), yapmanız gereken tek şey uygulamanızın build.gradle dosyasının bağımlılıklar bölümüne tek bir satır eklemektir.

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

4
  1. Dosya> Ayarlar> Gradle> Global Gradle Ayarları'nda "Çevrimdışı çalışma" seçeneğinin işaretini kaldırın.
  2. Örneğin Android Studio'yu yeniden başlatarak projeyi yeniden senkronize edin
  3. Senkronize edildikten sonra, çevrimdışı çalışmak için seçeneği tekrar işaretleyebilirsiniz.

0

Deneyin itext. build.gradleBu gönderi itibariyle en son sürümünüze bağımlılık ekleyin

Not: "g" nin sonundaki android için özel sürüm:

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.