¿Cómo importar la dependencia de Maven en Android Studio / IntelliJ?

92

Creé un nuevo proyecto de Android usando el asistente predeterminado en Android Studio. Compilé e implementé la aplicación en mi dispositivo. Todo está bien.

Ahora quiero importar una biblioteca externa que esté disponible en Maven. ( http://square.github.io/picasso/ ). Fui a las propiedades del módulo y agregué una biblioteca Maven. Se muestra correctamente en la lista de dependencias. Además, aparece en el editor y puedo usarlo correctamente en el código.

Sin embargo, en el momento de la compilación, aparece un error de Gradle: no puedo encontrar la clase

¿Algunas ideas?

munkay
fuente

Respuestas:

71

A partir de la versión 0.8.9, Android Studio es compatible con el repositorio central de Maven de forma predeterminada. Entonces, para agregar una dependencia externa de maven, todo lo que necesita hacer es editar el archivo build.gradle del módulo e insertar una línea en la sección de dependencias como esta:

dependencies {

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

}

Verá que aparece un mensaje como 'Sincronizar ahora ...': haga clic en él y espere a que se descargue el repositorio de maven junto con todas sus dependencias. Habrá algunos mensajes en la barra de estado en la parte inferior que le indicarán lo que está sucediendo con respecto a la descarga. Después de que termine esto, el archivo JAR importado junto con sus dependencias se enumerarán en el árbol de Repositorios externos en la ventana del Navegador de proyectos, como se muestra a continuación.

ingrese la descripción de la imagen aquí

Algunas explicaciones más aquí: http://developer.android.com/sdk/installing/studio-build.html

dodgy_coder
fuente
6
No funciona sin: repositorios {mavenCentral ()}
Johannes
1
A veces no podemos simplemente usar en dependencias, agregando externamente will workout, sample here ... repositories {maven {url ' oss.sonatype.org/content/repositories/ksoap2-android-releases '}} ... compile 'com.google .code.ksoap2-android: ksoap2-android: 3.6.0 '
Nandha
81

Estoy usando el artefacto de android springframework como ejemplo

abrir build.gradle

Luego agregue lo siguiente al mismo nivel que aplica el complemento: 'android'

apply plugin: 'android'

repositories {
    mavenCentral()
}

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

también puede usar esta notación para artefactos maven

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

Su IDE debería mostrar el jar y sus dependencias en 'Bibliotecas externas' si no aparece, intente reiniciar el IDE (esto me pasó bastante)

aquí está el ejemplo que proporcionó que funciona

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 
    } 
} 
usuario1568967
fuente
1
Lo intenté, aquí está mi archivo build.gradle: `` `buildscript {repositories {maven {url ' repo1.maven.org/maven2 '}} dependencias {classpath 'com.android.tools.build:gradle:0.4'}} aplicar complemento: dependencias 'android' {archivos de compilación ('libs / android-support-v4.jar') grupo de compilación: 'com.squareup.picasso', nombre: 'picasso', versión: '1.0.1'} android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig {minSdkVersion 14 targetSdkVersion 17}} `` `Error: No se pudo encontrar com.squareup.picasso: picasso: 1.0.1.
munkay
1
@munkay Actualicé la respuesta con un build.gradle corregido que coincide con su comentario
user1568967
18
La parte clave es reiniciar el IDE. Esta versión de IntelliJ no registra cambios.
Jimmy2Times
Sí, después de reiniciar todo está bien.
fuego el
1
"La parte clave es reiniciar el IDE". Dios mio. Esto es 2016 ... pero sí, gracias Jimmy2Times.
Guy Moreillon
6

Android Studio 3

Las respuestas que hablan de Maven Central están fechadas ya que Android Studio usa JCenter como el centro de repositorio predeterminado ahora. El archivo build.gradle de tu proyecto debería tener algo como esto:

repositories {
    google()
    jcenter()
}

Entonces, siempre que el desarrollador tenga su repositorio Maven allí (lo que hace Picasso), entonces todo lo que tendría que hacer es agregar una sola línea a la sección de dependencias del archivo build.gradle de su aplicación.

dependencies {
    // ...
    implementation 'com.squareup.picasso:picasso:2.5.2'
}
Suragch
fuente
4
  1. Desmarque "Trabajo sin conexión" en Archivo> Configuración> Gradle> Configuración global de Gradle
  2. Vuelva a sincronizar el proyecto, por ejemplo, reiniciando Android Studio
  3. Una vez sincronizado, puede volver a marcar la opción para trabajar sin conexión.
rinkesh
fuente
0

Prueba itext. Agregue dependencia a su build.gradleúltima versión de esta publicación

Nota: versión especial para Android, con "g" final:

dependencies {
    compile 'com.itextpdf:itextg:5.5.9'
}
tom
fuente