Bibliotecas de Android en Android Studio

¿Alguien ha descubierto cómo las bibliotecas de Android están destinadas a funcionar en Android Studio?

No he podido encontrar ninguna documentación sobre esto (la documentación en el sitio para desarrolladores de Android es increíblemente deshilada), y observo que dependiendo de cómo creo el proyecto de biblioteca, obtengo resultados completamente diferentes.

Si importa una biblioteca de Eclipse (siguiendo las recomendaciones del sitio web para exportar a Gradle primero) termino con un nuevo proyecto + módulo que contiene el proyecto de biblioteca. Esto no parece muy correcto (un intellij proyecto = eclipse espacio de trabajo), y los intentos de compilar / hacer esto en intellij resultados en muchos errores (el proyecto de la biblioteca no puede encontrar las bibliotecas de soporte de android).

Si creo un nuevo proyecto desde cero con un módulo de biblioteca, entonces obtengo un proyecto de biblioteca de android con un archivo build.gradle.

Si creo un nuevo módulo desde dentro de un proyecto (haciendo clic con el botón secundario en el proyecto), obtendré una biblioteca de Android construida con Ant. Esto compila bien, pero parece muy extraño. Seguramente no es la intención de que debemos utilizar Ant para Android librerías en android Studio? La creación de un nuevo módulo de biblioteca utilizando File> New Module no parece funcionar, por cierto. Simplemente crea una nueva aplicación en su lugar.

¿Alguien ha recogido alguna información para dar sentido a esto? Tampoco he encontrado ninguna ubicación donde se puede especificar qué bibliotecas se deben utilizar en qué módulos de aplicación. Entiendo que se trata de una versión preliminar, pero tengo dificultades para creer que una característica principal como las bibliotecas de Android es tan poco compatible. ¿Qué me estoy perdiendo?

Actualización 2014-04-09:

Así que tomé una nueva ronda con Android Studio esta semana. Y mientras que los problemas ahora son diferentes que cuando escribí originalmente esto, esto es – muy increíblemente – sigue siendo un gran problema. Todavía no he encontrado una buena explicación sobre el uso de bibliotecas de Android en varios proyectos en AS (incluidas bibliotecas anidadas). Algunas de las sugerencias que he visto recomiendan copiar el código en varias ubicaciones, lo que derrota por completo el propósito de tener una biblioteca para empezar.

Simplemente no entiendo lo que Google está pensando con Android Studio … Es una pena, porque parece una gran herramienta, pero la falta de un manejo intuitivo algo tan básico como la reutilización de código es un gran problema para mí (no importa Que la codificación específica para Android se está volviendo cada vez menos atractiva, en comparación con las cada vez mejores herramientas de desarrollo multiplataforma).

Si desea utilizar bibliotecas adicionales en su proyecto de Android Studio :

  1. Copie su biblioteca .jar en la carpeta libs de su proyecto
  2. Haga clic derecho en la biblioteca y elija "Agregar como biblioteca"
  3. En build.gradle reemplazar

    Compile los archivos ('libs / android-support-v4.jar')

con

 compile fileTree(dir: 'libs', include: '*.jar') 

Si todavía no funciona, navegue a la carpeta raíz de su proyecto con nuestro terminal y ejecute un comando gradlew clean .

Intellij es diferente a Eclipse, en que su 'espacio de trabajo' es sólo para un 'proyecto'. Cada proyecto se compone de múltiples módulos. Y estos módulos pueden estar allí propio 'proyecto / app / biblioteca'.

Así que un módulo es como el equivalente a un proyecto de Eclipse.

Ir a: Archivo-> Estructura del Proyecto-> Módulos

Y agrega la Biblioteca de Android como un módulo, puedes declarar que está en la Biblioteca de Android y convertirla en una dependencia de tu 'proyecto' (módulo de aplicación).

Multi Project Setup es lo que estás buscando, creo. No me enfocaría demasiado en las cosas de Android Studio al principio. Concéntrese en obtener los archivos gradle correctamente y luego "sincronizar" el módulo para actualizar Android Studio. (He tenido que reiniciarlo a veces para la sección "Build Variants" para actualizar con nuevos sabores.)

@Xav sugirió en una respuesta de Google+ lo siguiente:

El proyecto de alto nivel está allí en caso de que desee agregar nuevos módulos más adelante (proyecto de biblioteca). Es más fácil crear un proyecto superior con un solo módulo la primera vez, que crear un proyecto plano y convertirlo más tarde al agregar módulos.

Dos cosas principales a señalar, en su archivo settings.gradle, usted podría enumerar: app y: library modules; También se utiliza el plugin 'android' para la aplicación, pero el complemento 'android-library' debe usarse para los módulos de la biblioteca.

Si usted es capaz de ./gradlew montar desde la línea de comandos, Android Studio debe actualizar con la configuración correcta la próxima vez que abra el proyecto o sincronizar.

En el momento en que necesitas configurar tu archivo build.gradle para usar frascos con Android Studio o terminas con la temida NoClassDefException en tiempo de ejecución. Vea mi respuesta aquí para algunos consejos sobre cómo conseguir libs jar trabajando. También puede definir las dependencias de Maven directamente en ese build.gradle que es muy útil.

Por el bien de alguien golpeando en esto, aquí es lo que estoy haciendo para "resolver" este problema. Es muy lejos de una solución elegante, IMO, pero es lo más cercano a una buena solución que he encontrado para manejar mi problema (reutilización de las librerías de Android) en Android Studio con Git.

La idea básica es usar submódulos Git. Cada biblioteca tiene su propio repositorio de Git.

  1. Cree myLibrary como un módulo y, a continuación, confírmelo en un repositorio.
  2. Desde el repositorio de raíz del proyecto, hago un git submodule add para recuperar la biblioteca.
  3. En settings.gradle, agrego: include ':myLibrary' y sincronizar el proyecto.
  4. Configuración del módulo >> Dependencias >> + Dependencia del módulo y agregue una dependencia al módulo según corresponda.

Es muy lejos de la simple elegancia de trabajar con las bibliotecas de Android en Eclipse, pero funciona de una manera. Cosas a tener en cuenta:

  • Recuerde git tirar con frecuencia, para recoger los cambios (y luego confirmar el proyecto principal para sincronizar con los cambios de submódulo).
  • Recuerde que git push desde el directorio del módulo a remoto, si ha realizado cambios en la biblioteca.

El built-in VCS debe ser capaz de ayudar aquí, pero ha sido bastante escamosa para mí, así que prefiero hacerlo solo de una terminal ahora.

Espero que esto ayude.

Adjuntar la biblioteca de android en el estudio de android. Si usted tiene alguna idea acerca de la biblioteca, a continuación, agregar directamente para, por ejemplo.

(Esta es la biblioteca picasso)

 compile 'com.squareup.picasso:picasso:2.3.2' 

Si desea crear nuestra propia biblioteca, siga estos pasos.

  1. Haga clic en el menú Archivo
  2. Elija Nuevo módulo y seleccione Biblioteca de Android.

  3. Declare el nombre de la biblioteca y del paquete.

Ahora finalmente tu biblioteca se ha creado que puedes utilizar fácilmente.

  1. Haga clic en Archivo y luego haga clic en Estructura del proyecto
  2. Haga clic en la pestaña Dependencias dentro de la pequeña ventana y haga clic en el botón Color verde más.

  3. Y seleccione la dependencia del módulo para ver el archivo de la biblioteca.

  4. Seleccione la biblioteca y ok

  • El estudio de Android evita que el código se vuelva a formatear en la pasta
  • Android usando Intellij Versión 14 - Actualizar referencias XML sólo en el archivo de recursos XML actual
  • ¿Cómo configuro mi SDK de Java al crear un proyecto de Android en IntelliJ?
  • Android Studio / Intellij Idea: "Tabla de contenido" para una clase
  • Clases duplicadas R & BuildConfig después de "Reimport All Maven Projects"
  • ¿El módulo no puede ser Android Library?
  • Estilo de código de Android en Intellij Idea / Android Studio
  • ¿Qué es la versión de complemento de Android incluida en IntelliJ IDEA?
  • Las bibliotecas nativas (archivos .so) no se agregan a un proyecto android
  • Org.apache.http.entity.ContentType ya no está en Apache?
  • Generación automática de referencia @String en Android Studio
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.