Come importare la dipendenza Maven in Android Studio / IntelliJ?


92

Ho creato un nuovo progetto Android utilizzando la procedura guidata predefinita in Android Studio. Ho compilato e distribuito l'app sul mio dispositivo. Tutto bene.

Ora voglio importare una libreria esterna disponibile su Maven. ( http://square.github.io/picasso/ ). Sono andato alle proprietà del modulo e ho aggiunto una libreria Maven. Viene visualizzato correttamente nell'elenco delle dipendenze. Inoltre, viene visualizzato nell'editor e posso usarlo correttamente nel codice.

Tuttavia, in fase di compilazione, ottengo un errore Gradle: impossibile trovare la classe

Qualche idea?

Risposte:


71

A partire dalla versione 0.8.9, Android Studio supporta il repository centrale Maven per impostazione predefinita. Quindi, per aggiungere una dipendenza Maven esterna, tutto ciò che devi fare è modificare il file build.gradle del modulo e inserire una riga nella sezione delle dipendenze in questo modo:

dependencies {

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

}

Vedrai apparire un messaggio come "Sincronizza ora ...": fai clic su di esso e attendi che il repository Maven venga scaricato insieme a tutte le sue dipendenze. Ci saranno alcuni messaggi nella barra di stato in basso che ti diranno cosa sta succedendo riguardo al download. Al termine, il file JAR importato con le sue dipendenze verrà elencato nella struttura Archivi esterni nella finestra Browser di progetto, come mostrato di seguito.

inserisci qui la descrizione dell'immagine

Alcune ulteriori spiegazioni qui: http://developer.android.com/sdk/installing/studio-build.html


6
Non funziona senza: repository {mavenCentral ()}
Johannes

1
A volte non possiamo semplicemente usarli nelle dipendenze, aggiungendo esternamente si allenano, campionano qui ... repository {maven {url ' oss.sonatype.org/content/repository/ksoap2-android-releases '}} ... compilare 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha

81

Sto usando l'artefatto Android Springframework come esempio

aprire build.gradle

Quindi aggiungi quanto segue allo stesso livello di applica plug-in: "android"

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

puoi anche usare questa notazione per gli artefatti esperti

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

Il tuo IDE dovrebbe mostrare il jar e le sue dipendenze in 'Librerie esterne' se non viene visualizzato prova a riavviare l'IDE (questo mi è successo un bel po ')

ecco l'esempio che hai fornito che funziona

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
Ci ho provato, ecco il mio file build.gradle: `` buildscript {repository {maven {url ' repo1.maven.org/maven2 '}} dipendenze {classpath 'com.android.tools.build:gradle:0.4'}} applica plugin: dipendenze "android" {compile files ("libs / android-support-v4.jar") gruppo di compilazione: "com.squareup.picasso", nome: "picasso", versione: "1.0.1"} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` Errore: Impossibile trovare com.squareup.picasso: picasso: 1.0.1.
lunedì

1
@munkay ho aggiornato la risposta con un build.gradle corretto che corrisponde al tuo commento
user1568967

18
La parte fondamentale è riavviare l'IDE. Questa versione di IntelliJ non rileva le modifiche.
Jimmy2Times

Sì, dopo il riavvio è tutto ok.
firen

1
"La parte fondamentale è riavviare l'IDE". Oh mio Dio. Questo è il 2016 ... ma sì, grazie Jimmy2Times.
Guy Moreillon

6

Android Studio 3

Le risposte che parlano di Maven Central sono datate poiché Android Studio utilizza JCenter come centro di repository predefinito ora. Il file build.gradle del tuo progetto dovrebbe avere qualcosa del genere:

repositories {
    google()
    jcenter()
}

Quindi, finché lo sviluppatore ha il suo repository Maven lì (cosa che fa Picasso), tutto ciò che dovresti fare è aggiungere una singola riga alla sezione delle dipendenze del file build.gradle della tua app.

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

4
  1. Deseleziona "Lavoro offline" in File> Impostazioni> Gradle> Impostazioni globali di Gradle
  2. Risincronizza il progetto, ad esempio riavviando Android Studio
  3. Una volta sincronizzato, puoi controllare di nuovo l'opzione per lavorare offline.

0

Prova itext. Aggiungi dipendenza al tuo build.gradleultimo a partire da questo post

Nota: versione speciale per Android, "g" finale:

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.