¿Cómo puedo añadir Guayaba a mi proyecto de Android Studio?
En primer lugar, soy consciente de la existencia de esta pregunta – ¿Cómo puedo añadir un proyecto de biblioteca a Android Studio? – y, por desgracia, no me ha ayudado.
Mi objetivo es bastante simple. Quiero escribir una aplicación de Android con Android Studio IDE (0.2.11), y las bibliotecas de Guava en mi código.
- Cómo agregar Guava al proyecto Eclipse
- Integración de Espresso con Proguard y Gradle
- Usando el EventBus de Guava, ¿es posible ejecutar código de suscriptor en el subproceso que creó el bus?
- Uso de Google Guava con Android 1.6
- Cómo importar ** algunas ** partes de la biblioteca de guayaba en la aplicación de Android (gradle)
No sé Gradle, sólo he empezado a usar Android Studio y mi fondo de Visual Studio / C # me ha faltado, por lo que me disculpo (en ese mundo de Mickey Mouse, típicamente solo agregas una referencia de biblioteca y te vas).
Documentaré mis pasos con capturas de pantalla. En su mayoría seguí el consejo dado en esta respuesta .
Creé una carpeta de las libraries
debajo de mi carpeta del proyecto.
Yo cloné el repositorio de Guayaba en él.
Los archivos aparecieron correctamente.
Fui a la Project Structure
y el Import Module
seleccionado.
Seleccioné Create module from existing sources
y acepté todas las opciones predeterminadas.
He actualizado mi archivo settings.gradle
para include ':libraries:guava', ':Test'
:
Y mi archivo build.gradle
con el compile project(":libraries:guava")
:
Pero todo lo que recibo cuando intento reconstruir el proyecto es:
Error: Gradle: A problem occurred configuring project ':Test'. > Failed to notify project evaluation listener. > Configuration with name 'default' not found.
build.gradle
poner un build.gradle
como abajo en la carpeta de la guava
:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' dependencies { compile 'com.android.support:support-v4:13.0.+' } android { compileSdkVersion 17 buildToolsVersion "17.0.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } }
(Como dice la respuesta antes mencionada ).
He googled arriba y abajo para encontrar el build.gradle
"correcto" para la guayaba.
Https://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild – tampoco me ayudó.
He intentado innumerables cosas que no voy a describir aquí, ya que eran más bien al azar – Traté de añadir una dependencia de módulos, he intentado Use auto-import
en la Gradle settings
, etc
Sé que no es una forma de resolver problemas y prometo leer diligentemente la Guía del usuario de Gradle de 1 a 5.4.2 a 7.3, pero no puedo creer que esto sea realmente un requisito previo para lograr algo tan inofensivo como simplemente agregar una biblioteca a un ¿proyecto? ¿Por qué no hay build.gradle
archivo de build.gradle
defecto del que uno podría empezar a jugar con todo tipo de cosas si es necesario?
Y la verdadera pregunta – ¿Cómo puedo crear una aplicación (en Android Studio) que se basa, en realidad se ejecuta en un dispositivo Android y en la parte superior de que me permite usar la guayaba para poder clasificar un mapa por valores sin escribir 50 líneas de código ? 🙂
Lo siento por el tono de conversación de mi pregunta, sé que el ejercicio por aquí, es sólo mi manera de ventilar mi frustración.
A juzgar por cuántos votos fueron emitidos para preguntas y respuestas que abordaron temas similares, estoy seguro de que no soy el único que se beneficiaría de algunas instrucciones más. Comencé una recompensa de inmediato, pero las reglas me prohiben.
- ¿Por qué Android Studio no puede hacer referencia a una biblioteca si se incluye sólo en build.gradle?
- Guayaba: java.lang.NoClassDefFoundError - com.google.common.collect.HashBiMap
- ¿Es una buena idea usar la biblioteca Google Guava para el desarrollo de Android?
- Almacenamiento en caché de archivos de guayaba
- Capturando al ejecutor para el subproceso actual
- Mal rendimiento con Guava Cache en Android
- Problema de suscripción de bus de eventos (bus de eventos Otto - Guava)
Si solo necesitas usar una versión estable y lanzada de las librerías de Guava, importarla es extremadamente fácil.
Simplemente vaya al archivo build.gradle
del módulo donde desea usar la biblioteca (ie GuavaTestProject/GuavaTest/build.gradle
) y, justo después
repositories { mavenCentral() }
Agregue una dependencia de Maven:
dependencies { compile group: 'com.google.guava', name: 'guava', version: '15.0' }
Reconstruya su proyecto si es necesario y eso es todo (probado ahora mismo con un nuevo proyecto creado con Android Studio 0.2.13).
Si realmente necesita incluir el código fuente de la biblioteca Guava y compilar usted mismo como un módulo de su construcción de Gradle que es un problema completamente diferente porque Guava es construir con Maven y por lo que necesita para mover el sistema de generación de Guava de Maven a Gradle, Que creo que es abrumadoramente complejo para sus objetivos.
Si solo necesitas buscar el origen o verlo durante la depuración, lo que haría es:
-
Descargue el código fuente de Guava en una carpeta separada:
git clone https://code.google.com/p/guava-libraries/ git checkout v15.0
-
Cuando Android Studio no encuentre las fuentes, haga clic en "Adjuntar fuentes" y apunte a esta ubicación alternativa.
Creo que si no necesita modificar y compilar el código fuente de Guava, esta es la solución más fácil.
Eso es un montón de información en su pregunta. Estoy usando Guava
también. Pero no recuerdo pasar por ninguno de este problema ..
Guava
está disponible en el mavencentral
. Así que la adición de la guayaba a su proyecto debe ser bastante simple. AFAIK, no necesitas hacer checkout, construir y agregar una dependencia de proyecto, etc.
Vea el archivo gradle para mi aplicación a continuación.
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } // Dependencies dependencies { compile fileTree(dir: 'libs', include: '*.jar') // jar files under the libs folder. compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' // actionbarsherlock, compile 'com.android.support:support-v4:18.0.0' // android support lib compile 'com.google.code.gson:gson:2.2.4' // google GSON compile 'com.google.guava:guava:14.0.1' // guava 14.0.1 }
dependencies { compile 'com.google.guava:guava:19.0' }
Fuente: https://github.com/google/guava
En Android Studio 0.3.0 Ahora esto funciona como debería en Mac. Consulte las notas de la versión para obtener más opciones en la adición de bibliotecas http://tools.android.com/recent/androidstudio030released
He estado trabajando en Windows ahora y hay dos opciones Haga clic derecho en un frasco en librerías y tiene un agregado a la biblioteca O puede presionar F4 y llegar a abrir la configuración de la biblioteca por lo que parece que no tiene que luchar tanto en Windows Como en un Mac
Esto es lo que hice. Por favor, lea hasta el final ya que funciona de manera inconsistente y si no ve la flecha azul primero intente hay una resolución. Primero creé una carpeta libs. No creo que esto sea necesario sin embargo, pero es un hábito.
En primer lugar, vaya a Archivo, Estructura del proyecto.
Si ves una pequeña flecha azul en la parte superior izquierda empuja y vas a la pantalla donde puedes añadir una biblioteca
Si logras llegar a esta pantalla a continuación, pulsa el signo más y agrega la biblioteca.
También puede ver una línea roja en la parte inferior diciendo Guayaba no se utiliza con una bombilla. Este relleno agrega la dependencia al archivo de compilación de Gradle
SI NO VER LA FLECHA AZUL
GO en lugar de Archivo, Otros ajustes, Estructura de proyecto predeterminada.
Desde esa pantalla puede agregar la biblioteca
Luego regrese a la estructura del proyecto y agréguela. La cosa es que seguirá siendo un valor predeterminado para todos sus proyectos para que pueda agregar y quitar para cada proyecto individual a través del menú de estructura del proyecto. No estoy seguro de si se trata de un error en Android Studio el hecho de que se puede bloquear de agregarlo al proyecto individual sin cambiar el valor predeterminado.