Usando la biblioteca ViewPagerIndicator con Android Studio y Gradle

118

Estoy tratando de usar la biblioteca ViewPagerIndicator de Jake Wharton , pero no puedo hacer que funcione con mi proyecto Gradle en Android Studio.

Lo agrego como una dependencia así:

    dependencies {
       // ... other ommitted
       compile 'com.viewpagerindicator:library:2.4.1'
       compile 'com.android.support:support-v4:19.0.1'
       compile 'com.nineoldandroids:library:2.4.0'
       // ...
    }

pero el proyecto no parece reconocer ningún componente en la biblioteca. Me pregunto si hay un problema de dependencia con diferentes versiones de soporte v4 o algo en nineoldandroids ...

Loeschg
fuente

Respuestas:

199

Acabo de enviar una versión dentro de maven central, por lo que solo necesita agregar esa dependencia:

compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'

Y declare maven central así:

repositories {
    mavenCentral()
}

Espero eso ayude...

avianey
fuente
4
Gracias. No quería agregar un repositorio maven aleatorio a mi script de compilación. Esto mucho mejor.
Greg Ennis
Agregué dicha dependencia pero no la resuelve en la compilación de gradle. Error exacto: ¿ Failed to resolve: fr.avianey.com.viewpagerindicator:library:2.4.1 Alguna razón?
rockydgeekgod
¿Agregaste el repositorio en la sección correcta ... quiero decir, no en los repositorios de complementos ...
avianey
Lo agregué en la dependencysección del build.gradlearchivo del módulo individual . Aquí
rockydgeekgod
2
fr.avianey.com.viewpagerindicator: library: 2.4.1@aar - te falta el @aar
Mark
147

Un poco tarde para la fiesta, pero aquí:

Jake Wharton no lo ha lanzado en maven como aar. Sin embargo, hay un grupo que ha hecho que un aar esté disponible a través de su servidor, puedes configurarlo así en tu build.gradle:

Agregue esto a sus repositorios de origen después de declarar sus complementos:

repositories {
    maven { url "http://dl.bintray.com/populov/maven" }
    mavenCentral()
}

Esto obtendrá su repositorio de maven, que contiene un aar empaquetado que armaron. Una vez hecho esto, simplemente puede agregar esta línea a sus dependencias y todo debería funcionar una vez que sincronice su proyecto con sus archivos gradle.

Asegúrese de que Maven Repo aparezca encima de la mavenCentral()entrada. De lo contrario, primero buscará en el repositorio central de maven y encontrará el paquete incorrecto.

Android Studio genera dos build.gradlearchivos para proyectos, ¡asegúrate de poner esto en el correcto!

dependencies {
    // ...
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    // ...
}

Lo usamos en nuestra aplicación si desea ver un ejemplo funcional:

https://github.com/pandanomic/SUREwalk_android/blob/master/surewalk/build.gradle

Zac Sweers
fuente
5
¡Gracias! Solo quería comentar que el repositorio de bintray debe estar por encima de mavenCentral (). Puede leer esto: blog.haunted-soft.com/2013/10/…
Ferran Maylinch
5
Esto ya no parece funcionar: seguí los pasos y cuando Android Studio actualiza el proyecto, aparece "Error en la actualización del proyecto Gradle 'XYZ': Artifact 'com.viewpagerindicator: library: 2.4.1: library.aar' no encontrado.
Luke Sleeman
30
Después de mucho trabajo, he encontrado versiones recientes de proyectos de producción de estudio de Android con dos archivos gradle, uno dentro en app / build.gradle y otro en /build.gradel, el del directorio raíz es donde puede agregar opciones de configuración comunes a todos los subproyectos / módulos. Necesitas poner: allprojects {repositories {maven {url " dl.bintray.com/populov/maven "} mavenCentral ()}} en el nivel superior build.gradle para que funcione
Luke Sleeman
67
atención ahora la dependencia es compilar 'com.viewpagerindicator: library: 2.4.1' [referencia:] mvnrepository.com/artifact/com.viewpagerindicator/library/2.4.1
Ricardo Pessoa
4
@OlegVaskevich, está intentando compilar la biblioteca incorrecta. Debe usar el aar en el repositorio de bintray especificado en la respuesta anterior. Hay una gran cantidad de información errónea en este hilo que no es ayudada por personas que hacen ediciones incorrectas en mi respuesta.
Zac Sweers
56

Estoy usando gradle 0.10. + Con Android Studio 0.8.2 y la respuesta aceptada no funcionó para mí. Estos son los pequeños cambios que tuve que hacer para que ABS funcionara en mi proyecto:

En el build.gradlearchivo de nivel superior de su proyecto, agregue el repositorio de maven en la allprojectsconfiguración de esta manera:

allprojects {
   repositories {
      maven { url "http://dl.bintray.com/populov/maven" }
      mavenCentral()
   }
}

Y en el build.gradlearchivo del módulo agregue la dependencia sin @aar:

dependencies {
   // ...
   compile 'com.viewpagerindicator:library:2.4.1'
   // ...
}
mugiwarapy
fuente
También tenga en cuenta que si está utilizando la biblioteca de soporte en otro lugar y la ha agregado a sus dependencias, es posible que obtenga un error extraño ya que viewpager también trae su propia versión de soporte v4. consulte este enlace - stackoverflow.com/questions/20989317/…
trippedout
49

Jitpack.io es ideal para esta situación.

Primero, agregue el siguiente repositorio:

repositories {
    // ...
    maven { url "https://jitpack.io" }
}

Luego, simplemente agregue la dependencia que apunta al repositorio de GitHub:

dependencies {
    compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar'
}
Juan Andrés Diana
fuente
Salvó el día gracias :) Publicaré tu respuesta en otro lugar stackoverflow.com/questions/25702884/… .
Muhammad
@Juan Andres - ¿Está bien si solo tomo el gradle?
RoCk RoCk
26

Agregue esto a sus dependencias en el archivo build.gradle del módulo de su aplicación así:

dependencies {
   compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
   ...
}
Md Yusuf Alam
fuente
1
Idd esta es la forma correcta de hacerlo. Dado que va directamente al proyecto de origen en GitHub, omitiendo los sitios de terceros.
user2408952
8

Hice el truco siguiendo esto. No es necesario importar la biblioteca ni nada. Solo dos pasos y bingo, funciona perfectamente.

En build.gradle (Proyecto: ...):

allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

En build.gradle (Módulo: aplicación):

dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
    }
Parsania Hardik
fuente
5

No pude importar el proyecto con ninguna de las respuestas. Estoy usando Android Studio 0.8.6 y gradle 1.12.

La única solución que se me ocurrió fue descargar la biblioteca .aar de:

http://dl.bintray.com/populov/maven/com/viewpagerindicator/library/2.4.1/

y luego importar la biblioteca en gradle así:

 repositories {
      flatDir {
        dirs 'libs'}
   }

 dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile(name:'library-2.4.1', ext:'aar') 
  }

¡Espero que esto ayude!

vrunoa
fuente
2
Solo para aclarar, library-2.4.1.aardebe colocarse en el libsdirectorio de su módulo , que debe crear si aún no existe.
Sam
4

Estoy usando Studio 0.8.6 y Gradle 1.12

Una diferencia en mi proyecto podría haber sido que también estoy usando las bibliotecas de compatibilidad que hicieron que Gradle se quejara de tener la biblioteca support-v4dos veces.

Así que tuve que excluir el ya incluido support-v4así:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'    
    compile ('com.viewpagerindicator:library:2.4.1') {
        exclude module: 'support-v4'
    }
}

Luego también se quejó de tener el AndroidManifest.xmlarchivo dos veces.

Así que también agregué exclude 'AndroidManifest.xml'en la androidsección como esta:

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }

Entonces funcionó.

Jens
fuente
no funciona: Error: Empaquetado para la dependencia com.viewpagerindicator: library: 2.4.1 es 'apklib' y no es compatible. Solo se admiten las bibliotecas 'aar'.
Govinda Paliwal
3

asegúrese de que el soporte: support-v4 sea el mismo en todas las bibliotecas y en su aplicación, en algún momento causa problemas, así que use el mismo soporte: support-v4 en todas las bibliotecas y el proyecto de su aplicación.

Jitesh Upadhyay
fuente
Sí, esta es una posibilidad. Hay una solicitud de extracción abierta para actualizar la biblioteca de soporte v4 ( github.com/JakeWharton/Android-ViewPagerIndicator/pull/271 ). No parece que este proyecto se esté manteniendo activamente ... :(
loeschg
Oye, pero ViewPagerInidicator es una biblioteca de Android. Significa que si usan maven, lo más probable es que sea apklib artefact y gradle funcione solo con artefacto de guerra
Eugen Martynov
3

La publicación marcada como respuesta no funcionó para mí ... Gradle se quejó de "Conexión rechazada".

Teniendo en cuenta que parece que es estable después de todo este tiempo, simplemente descargué el archivo aar de https://bintray.com/populov/maven/com.viewpagerindicator:library , lo copié en mi carpeta libs y lo mencioné así:

dependencies {
...
compile 'com.viewpagerindicator:library:2.4.1@aar'
}
devguy
fuente
Eso es extraño. Acabo de usar el mismo método para agregarlo a otro proyecto a principios de esta semana y todavía funciona bien para mí: /
Zac Sweers
1
Este ya no es un consejo correcto, ya que el sufijo @aar ya no es necesario.
John Hamelink
4
No funcionó para mí; tengo Artifact 'library.aar (com.viewpagerindicator:library:2.4.1)' not found. Searched in the following locations: https://jcenter.bintray.com/com/viewpagerindicator/library/2.4.1/library-2.4.1.aar.
Sam
2

Esto es lo que funcionó para mí:

repositories {
   jcenter()
// maven { url "http://dl.bintray.com/populov/maven" }
   mavenCentral()
}

es decir, no utilice la URL del repositorio.

luego usa:

dependencie {
    ....
    compile 'com.mcxiaoke.viewpagerindicator:library:2.4.1@aar'
    ....
}
nyxee
fuente
2
Add it in your build.gradle at the end of repositories:
Ste 1
 repositories {
        // ...
        maven { url "https://jitpack.io" }
    }
Step 2. Add the dependency in the form

    dependencies {
            compile 'com.github.JakeWharton:ViewPagerIndicator:2.4.1@aar'
    }
Sam
fuente
2

También intente poner el repositorio de maven antes que otros.

 buildscript {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
        jcenter()
    }
}

Y construye con dependencias:

  apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId ""
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.viewpagerindicator:library:2.4.1'
}
ODAXY
fuente
2

En aras de la variedad, aquí hay una respuesta que no usa maven:

  1. Descargue zip / tgz desde ViewPagerIndicator

  2. En la ventana del proyecto, seleccione la navegación del proyecto.

  3. Vaya a proyecto> Nuevo> Módulo.

  4. Importar proyecto Gradle

  5. Busque y seleccione la carpeta de la biblioteca descomprimida. Nombra el módulo como quieras. Lo nombréviewPagerIndicator

  6. Siga haciendo clic en Siguiente hasta llegar a la última ventana donde Finishse puede hacer clic. Si recibe el Android Support Library is not installedmensaje, no se preocupe. Solo sigue adelante y haz clic Finish.

  7. Espere a que finalice la compilación de gradle y la compilación del proyecto. Una vez completado, agregue esto a las dependencias {..} en build.gradle (Module:app):

     compile project(':viewPagerIndicator')

La biblioteca ya está disponible para su uso.

Llama de udun
fuente
0

Por favor revisa esto primero

Android Studio - EXCEPCIÓN INESPERADA DE NIVEL SUPERIOR:

si estas comprobaciones están bien, mencione a continuación.

No es necesario incluir support-v4 como dependencia de su módulo porque la biblioteca ViewPagerIndicator ya tiene support-v4 como su dependencia. Entonces puede intentar eliminar eso y sincronizar con gradle usando el pequeño y encantador botón de gradle disponible en la barra de herramientas:

ingrese la descripción de la imagen aquí

Actualice su pregunta si recibe algún error en la sincronización.

ACTUALIZADO :

No estoy seguro, pero podría ser un problema. No encontré ninguna biblioteca ViewPagerIndicator basada en gradle. JackWarton ha movido actionbarsherlock en gradle pero ViewPagerIndicator sigue usando maven.

pyus13
fuente
Gracias, @ pyus13. Sí, ese botón de proyecto de sincronización es mi primer paso al agregar una nueva dependencia. Ese no era el problema. Actualicé mi pregunta.
loeschg
@loeschg no encontré que jackwarton haya movido viewpagerindicator en gradle. Podría ser un problema.
pyus13
0

Puede incluir la biblioteca ViewPagerIndicator directamente dentro de su aplicación como se describe aquí

Le permite importar la biblioteca ViewPagerIndicator como un "Proyecto existente" a su proyecto actual.

Babatunde Adeyemi
fuente
0

Para mí tampoco funcionó ninguna de las soluciones anteriores. Pero esto funcionó para mí.

  1. Simplemente incluya la biblioteca requerida de aquí Viewpagerindicator Library

  2. Incluya esto en build.gradle del módulo de su aplicación (no tendrá un repositorio allí, solo inclúyalo por encima de las dependencias).

repositories {
    flatDir{
        dirs 'libs'
    }
}

  1. agregue esto a sus dependencias.

compile (name:'library-2.4.1',ext:'aar')

Uday Ramjiyani
fuente
0

En resumen: puede buscar "ViewPagerIndicator" en http://mvnrepository.com/ , encontrará que el com.viewpagerindicator original no tiene el marcador rojo "Paquetes de Android", por lo que no puede usarlo con Gradle. Puedes encontrar otro con el marcador rojo, asegúrate de que tenga la misma versión que el original. (es decir, alguien crea un paquete de Android basado en el original)

cn123h
fuente
0

Tiene un problema de gradle más nuevo. Simplemente cambie la dependencia como se muestra a continuación.

implementation 'com.inkapplications.viewpageindicator:library:2.4.3'
Rajan Kashiyani
fuente