¿Cómo agrego un proyecto de biblioteca a Android Studio?

¿Cómo puedo añadir un proyecto de biblioteca (como Sherlock ABS) a Android Studio ?

(No en el antiguo paquete basado en Eclipse de ADT, sino en el nuevo Android Studio .)

Actualización para Android Studio 1.0

Desde Android Studio 1.0 fue lanzado (y un montón de versiones entre v1.0 y uno de los primeros desde el momento de mi respuesta anterior) algunas cosas ha cambiado.

Mi descripción se centra en la adición de proyecto de biblioteca externa a mano a través de archivos Gradle (para una mejor comprensión del proceso). Si desea agregar una biblioteca a través de Android Studio creador, simplemente revise la respuesta a continuación con una guía visual (hay algunas diferencias entre Android Studio 1.0 y las capturas de pantalla, pero el proceso es muy similar).

Antes de empezar a agregar una biblioteca a su proyecto a mano, considere agregar la dependencia externa. No va a meterse en la estructura de su proyecto. Casi todas las conocidas librerías de Android están disponibles en un repositorio de Maven y su instalación toma sólo una línea de código en el archivo app/build.gradle :

 dependencies { compile 'com.jakewharton:butterknife:6.0.0' } 

Adición de la biblioteca

Aquí está el proceso completo de agregar la biblioteca externa de Android a nuestro proyecto:

  1. Crear un nuevo proyecto a través del creador de Android Studio. Lo llamé HelloWorld .
  2. Esta es la estructura original del proyecto creada por Android Studio:
 HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ... 
  1. En el directorio raíz ( HelloWorld/ ), cree una nueva carpeta: /libs en la que /libs nuestras bibliotecas externas (este paso no es necesario – sólo para mantener una estructura de proyecto más limpia).
  2. Pegue su biblioteca en la carpeta recién creada /libs . En este ejemplo he usado la biblioteca PagerSlidingTabStrip (solo descarga ZIP de GitHub, cambia el nombre del directorio de la biblioteca a "PagerSlidingTabStrip" y copia) Aquí está la nueva estructura de nuestro proyecto:
 HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ... 
  1. Edite settings.gradle agregando su biblioteca para include . Si usas una ruta personalizada como la que hice, también tienes que definir el directorio del proyecto para nuestra biblioteca. Un settings.gradle entero debe verse como a continuación:

     include ':app', ':PagerSlidingTabStrip' project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip') 

5.1 Si se enfrenta al error "Configuración predeterminada", intente esto en lugar del paso 5,

  include ':app' include ':libs:PagerSlidingTabStrip' 
  1. En app/build.gradle agregue nuestro proyecto de biblioteca como una dependencia:

     dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile project(":PagerSlidingTabStrip") } 

6.1. Si siguió el paso 5.1, siga esto en lugar de 6,

  dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:21.0.3' compile project(":libs:PagerSlidingTabStrip") } 
  1. Si su proyecto de biblioteca no tiene el archivo build.gradle , debe crearlo manualmente. Aquí hay un ejemplo de ese archivo:

      apply plugin: 'com.android.library' dependencies { compile 'com.android.support:support-v4:21.0.3' } android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { minSdkVersion 14 targetSdkVersion 21 } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] res.srcDirs = ['res'] } } } 
  2. Además, puede crear una configuración global para su proyecto que contendrá versiones de SDK y la versión de herramientas de construcción para cada módulo para mantener la coherencia. Simplemente edite el archivo gradle.properties y añada líneas:

     ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.3 ANDROID_BUILD_SDK_VERSION=21 

    Ahora puedes usarlo en tus archivos build.gradle (en módulos de aplicaciones y bibliotecas) como a continuación:

     //... android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION defaultConfig { minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION) targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION) } } //... 
  3. Eso es todo. Simplemente haga clic en, sincronizar el proyecto con el icono Gradle ' Sincronizar con Gradle . Su biblioteca debe estar disponible en su proyecto.

Google I / O 2013 – El nuevo sistema SDK Build de Android es una gran presentación sobre la creación de aplicaciones para Android con Gradle Build System: Como dijo Xavier Ducrohet:

Android Studio tiene que ver con la edición, la depuración y la creación de perfiles. No se trata de construir más.

Al principio puede ser un poco confuso (especialmente para aquellos que trabajan con Eclipse y nunca han visto a la hormiga como yo;)), pero al final Gradle nos da algunas grandes oportunidades y vale la pena aprender este sistema de construcción.

Aquí está la guía visual:

Actualización para Android Studio 0.8.2:

En Android Studio 0.8.2, vaya a Estructura de proyecto -> bajo Módulos simplemente pulse el botón más y seleccione Importar proyecto existente e importe actionbarsherlock . A continuación, sincronice sus archivos Gradle.

Si enfrentas el error

Error: La revisión Herramientas de compilación de SDK (xx.xx) es demasiado baja. Mínimo requerido es yy.yy

Simplemente abra el archivo build.gradle en el directorio actionbarsherlock y actualice el buildToolsVersion al sugerido.

 android { compileSdkVersion 19 buildToolsVersion 'yy.yy' 

Android Studio 0.8.2


Archivo de menú -> Estructura del proyecto … :

primero

Módulo -> Módulo de importación

Segundo

Después de importar el módulo de biblioteca, seleccione su módulo de proyecto y agregue la dependencia:

Tercero

A continuación, seleccione el módulo importado :

Adelante

Utilice el menú Archivo -> Estructura del proyecto -> Módulos .

Comencé a usarlo hoy. Es un poco diferente.

Para Sherlock, tal vez quiera eliminar su directorio de prueba, o añadir el archivo junit.jar al classpath.

Para importar la biblioteca usando gradle, puede tener que añadirla a la sección de dependencies de su build.gradle (la del módulo).

P.ej

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.0' compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar' } 

Android Studio está cambiando.

Existe una sección llamada "Abrir configuración de módulo" si hace clic con el botón derecho en una carpeta de módulo en la sección de proyecto de Android Studio (estoy usando la versión 0.2.10).

Consideraría Dependencias, Bibliotecas de Android y Multi-proyecto de configuración de lectura necesaria. Tómese unos minutos para hacerlo.

Particularmente, en el caso de un proyecto de biblioteca sin jar, lea el siguiente fragmento de la fuente anterior:

Los proyectos Gradle también pueden depender de otros proyectos gradle usando una configuración multiproyecto. Una configuración de varios proyectos normalmente funciona teniendo todos los proyectos como subcarpetas de un proyecto raíz determinado.

Por ejemplo, dado a la siguiente estructura:

 MyProject/ + app/ + libraries/ + lib1/ + lib2/ 

Podemos identificar 3 proyectos. Gradle hará referencia a ellos con el siguiente nombre:

 :app :libraries:lib1 :libraries:lib2 

Cada proyecto tendrá su propio build.gradle declarando cómo se construye. Además, habrá un archivo llamado settings.gradle en la raíz declarando los proyectos. Esto da la siguiente estructura:

 MyProject/ | settings.gradle + app/ | build.gradle + libraries/ + lib1/ | build.gradle + lib2/ | build.gradle 

El contenido de settings.gradle es muy sencillo:

 include ':app', ':libraries:lib1', ':libraries:lib2' 

Esto define qué carpeta es en realidad un proyecto Gradle.

Es probable que el proyecto: app dependa de las bibliotecas, y esto se hace declarando las siguientes dependencias:

 dependencies { compile project(':libraries:lib1') } 

Tenga en cuenta que hubo poco o ningún uso de Android Studio GUI para que esto suceda.

Actualmente estoy usando submódulos git para vincular la biblioteca anidada a la biblioteca real git repo para evitar un lío de dependencia.

Acabo de encontrar una forma más fácil (en lugar de escribir directamente en los archivos .gradle).

Esto es para Android Studio 1.1.0.

  1. Menú Archivo -> Nuevo Módulo … :

    Importar proyecto existente

    Haga clic en "Importar Proyecto Existente".

  2. Seleccione la biblioteca deseada y el módulo deseado.

  3. Haga clic en Finalizar. Android Studio importará la biblioteca en su proyecto. Se sincronizan archivos gradle.

  4. Agregue el módulo importado a las dependencias de su proyecto.

    Haga clic derecho en la carpeta de la aplicación -> Abra la configuración del módulo -> ir a la pestaña de dependencias -> Haga clic en el botón '+' -> haga clic en la Dependencia del módulo.

    A continuación, se agregará el módulo de biblioteca a las dependencias del proyecto.

    Añadir módulo de biblioteca

  5. ???

  6. Lucro

La forma más fácil que encontré para incluir proyecto de biblioteca externa es (por ejemplo, para incluir una biblioteca de Facebook que se almacena un directorio en la carpeta de dependencias):

  1. En settings.gradle add

     include ':facebook' project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK') 
  2. En la sección de dependencias de build.gradle, agregue

     compile project ('facebook') 

Todo lo que queda por hacer es sincronizar el proyecto con los archivos gradle.

Una forma sencilla de agregar un archivo JAR como una biblioteca a su proyecto de Android Studio:

A) Copie los archivos * .jar

B) Pegar en el directorio libs bajo sus proyectos:

Introduzca aquí la descripción de la imagen

C) Añadir a build.gradle:

 dependencies { ... compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..) } 

B) Si su proyecto desde el ejemplo com.example.MYProject y las bibliotecas com.example.ScanAPI tiene el mismo namespace com.example , Android Studio comprobará su compilación y creará todos los cambios necesarios en su proyecto. Después, puede revisar esta configuración en el menú Archivo -> Estructura del proyecto .

C) Si su proyecto y bibliotecas tienen un espacio de nombres diferente , tiene que hacer clic con el botón derecho en la biblioteca y seleccionar la opción "Agregar como biblioteca" y seleccionar el tipo de lo que necesita.

Recuerde que la opción "Estructura del proyecto" no está realizando cambios automáticos en "build.gradle" en la versión actual de Android Studio (0.2.3). Tal vez esta función estará disponible en las próximas versiones.

Opción 1: Colocar archivos en el directorio libs / de Project

El archivo build.gradle relevante se actualizará automáticamente.

Opción 2: Modifique manualmente el archivo build.gradle

Abra el archivo build.gradle y agregue una nueva regla de compilación al cierre de las dependencias. Por ejemplo, si desea agregar Google Play Services, la sección de dependencias de su proyecto se vería de la siguiente manera:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.google.android.gms:play-services:6.5.+' } 

Opción 3: Utilizar la interfaz de usuario de Android Studio

En el panel Proyecto, haga clic en Control + haga clic en el módulo al que desea agregar la dependencia y seleccione Abrir configuración de módulo.

Introduzca aquí la descripción de la imagen

Seleccione la pestaña Dependencias, seguida por el botón + en la esquina inferior izquierda. Puede elegir entre la siguiente lista de opciones:

  • Dependencia de la biblioteca
  • Dependencia de archivos
  • Dependencia del Módulo

A continuación, puede introducir más información sobre la dependencia que desea agregar al proyecto. Por ejemplo, si elige Dependencia de biblioteca, Android Studio mostrará una lista de bibliotecas para elegir.

Una vez que haya agregado su dependencia, compruebe su archivo build.gradle a nivel de módulo. Debe haber actualizado automáticamente para incluir la nueva dependencia.

Fuente

Si necesita acceso a los recursos de un proyecto de biblioteca (como lo hace con ABS), asegúrese de agregar el proyecto / módulo de biblioteca como "Dependencia de módulo" en lugar de "Biblioteca".

Así es como funciona para mí en Android Studio 1.5

En el proyecto donde desea agregar un proyecto de biblioteca externa, vaya al menú Archivo -> Nuevo -> * Importar nuevo Módulo **, navegue al proyecto de biblioteca que desea agregar a su proyecto, seleccione para agregar el módulo 'biblioteca' en tu proyecto. Usted obtendrá settings.gradle en sus proyectos, al lado de la aplicación, biblioteca incluida, algo así:

 include ':app', ':library' 

Agregue en build.gradle (Module: app) en la sección de dependencias:

Proyecto de compilación (': library')

Reconstruir el proyecto, y eso es todo.

* Puede agregar tantas bibliotecas (módulos) como desee. En ese caso en settings.gradle tendrá:

  include ':app', ':lib1', ':lib2', ... 

Y en build.gradle, necesitará tener:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // Some other dependencies... compile project(':lib1') compile project(':lib2') ... } 

Usted puede hacer esto fácilmente. Ir al menú Archivo -> Nuevo -> Importar Módulo … :

Introduzca aquí la descripción de la imagen

Busque el directorio que contiene el módulo. Haga clic en Finalizar:

Introduzca aquí la descripción de la imagen

Vaya a la estructura del proyecto y agregue la dependencia del módulo :

Introduzca aquí la descripción de la imagen

Nota: Si recibe un error de SDK, actualice uno.

Para agregar a la respuesta: Si el IDE no muestra ningún error, pero cuando intenta compilar, obtiene algo así como:

 No resource found that matches the given name 'Theme.Sherlock.Light' 

Su proyecto de biblioteca probablemente se compila como un proyecto de aplicación. Para cambiar esto, vaya a:

Archivo de menú -> Estructura del proyecto -> Facetas -> [Nombre de la biblioteca] -> Marque "Módulo de la biblioteca".

  1. Presione F4 para mostrar la estructura del proyecto , haga clic en bibliotecas o bibliotecas globales y haga clic en + para agregar el archivo JAR.
  2. Haga clic en Módulos lo que desea agregar jar, seleccione la ficha Dependencias , haga clic en + y agregue Biblioteca.

Editar las dependencias de la biblioteca a través de la GUI no es recomendable ya que no escribe esos cambios en el archivo build.gradle. Así que su proyecto no se construirá desde la línea de comandos. Deberíamos editar el archivo build.gradle directamente de la siguiente manera.

Por ejemplo, dado a la siguiente estructura:

Mi proyecto/

  • App /
  • Bibliotecas
    • Lib1
    • Lib2 /

Podemos identificar tres proyectos. Gradle hará referencia a ellos con los siguientes nombres:

  1. : App
  2. : Libraries: lib1
  3. : Libraries: lib2

Es probable que el proyecto: app dependa de las bibliotecas, y esto se hace declarando las siguientes dependencias:

 dependencies { compile project(':libraries:lib1') } 

Después de importar el módulo ABS (desde Archivo> Estructura del proyecto) y asegurarse de que tiene Android 2.2 y la Biblioteca de soporte v4 como dependencias, seguía recibiendo el siguiente error como @Alex

 Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar' 

He añadido el módulo recién importado como una dependencia de mi módulo de aplicación principal y que arreglaron el problema.

Para resolver este problema, sólo tiene que agregar la ruta de recursos abs a su archivo de construcción de proyecto, como a continuación:

 sourceSets { main { res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res'] } } 

Por lo tanto, vuelvo a compilar sin errores.

First Way Esto funciona para MacBook.

Primero, seleccione su archivo builder.gradle como la pantalla dada:

Introduzca aquí la descripción de la imagen

Añadir dependencias como en la pantalla seleccionada:

Introduzca aquí la descripción de la imagen

Seleccione proyecto de sincronización.

Si está recibiendo un error como "Project with path": signature-pad 'no se pudo encontrar en el proyecto': app '", utilice la segunda vía:

Seleccione el menú Archivo -> Nuevo -> Importar Módulo … :

Introduzca aquí la descripción de la imagen

Después de hacer clic en Import Module ,

Introduzca aquí la descripción de la imagen

Dar el camino de la biblioteca como mi camino de MacBook:

Introduzca aquí la descripción de la imagen

Haga clic en Finalizar . Ahora su biblioteca se agrega.

Si tiene Android Studio .0.4.0, puede crear una nueva carpeta en su ruta de construcción, YourApp/libraries . Copie el archivo JAR. Allí, haga clic derecho en él y "Agregar como biblioteca". Ahora tienes un popup. Simplemente seleccione su directorio y presione OK, y eso es todo.

https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0 es el enlace Dropbox de cómo agregar un archivo JAR y un proyecto de biblioteca en la última versión de Android Studio 1.0.1.

Consulte la documentación con capturas de pantalla. Es muy fácil para un nuevo usuario.

Encontré la solución. Es tan simple. Siga las instrucciones de froger_mcs .

Asegúrese de que la carpeta src es una carpeta de origen en Estructura de proyecto -> Módulos (Fuentes).

Introduzca aquí la descripción de la imagen

Un ejemplo de agregar con éxito otra biblioteca (PullToRefresh). También funciona para ABS libproject.

Esta pregunta

Esta publicación

Básicamente, puede incluir sus archivos JAR de tres maneras diferentes. El último es la biblioteca remota que está utilizando https://bintray.com/ jcenter repositorio en línea. Pero, si lo hace de una de las otras dos maneras, el archivo JAR se incluirá físicamente en su proyecto. Por favor, lea este enlace https://stackoverflow.com/a/35369267/5475941 para obtener más información. En este post le expliqué cómo importar su archivo JAR en Android Studio y le expliqué todas las formas posibles.

En resumen, si es así (dirección local), se descargan y estos archivos JAR están físicamente en el proyecto:

Introduzca aquí la descripción de la imagen

Pero, si se trata de una dirección de Internet como esta, son bibliotecas remotas (parte de jcenter de bintray.com) y se utilizarán de forma remota:

Introduzca aquí la descripción de la imagen

Espero que ayude.

Abra el módulo de compilación de módulos de gradle y agregue su dependencia. Si descarga la biblioteca, sólo importe y cree como gradle.

De lo contrario, añada repositorios en la aplicación de módulo de gradación lateral:

 repositories { maven { url 'http://clinker.47deg.com/nexus/content/groups/public' } } 

Los primeros repositorios le descargarán la biblioteca.

Y compilar la biblioteca descargada:

  compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') { transitive = true } 

Si está creando una biblioteca, sólo necesita importar el proyecto como importar nuevo módulo.

En Android Studio, vaya a la carpeta de la aplicación interna y abra el archivo build.gradle. Aquí verás dependencias {}. En su interior puede agregar el proyecto de la biblioteca y sincronizar. Ahora, después de sincronizar la biblioteca, se agregará a su proyecto y podrá usar sus funciones y clases en su proyecto.

Para Android Studio:

Introduzca aquí la descripción de la imagen

Haga clic en Build.gradle (module: app) .

Y agregue para

 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile files('libs/commons-io-2.4.jar') } 

Y en su directorio "app", cree un directorio, "libs". Añade el archivo yourfile.jar:

Introduzca aquí la descripción de la imagen

Finalmente, compile los archivos Gradle:

Introduzca aquí la descripción de la imagen

Simplemente importe el proyecto de biblioteca de Android como un módulo y en Build.gradle .

Aplicar complemento: 'com.android.library'

Después de eso, siga estos pasos:

  1. Haga clic con el botón secundario en Módulo y seleccione Abrir configuración del módulo
  2. Seleccione las dependencias, haga clic en + , seleccione las dependencias de la biblioteca y agregue el módulo previamente importado.

Tuve una causa diferente del problema para la gente:

 repositories { mavenCentral() } 

Cambie mavenCentral () a jcenter () y agregue

 allprojects { repositories { jcenter() } } 

También me encontré con el mismo problema, entonces hice las cosas siguientes.

  1. Importe el proyecto de biblioteca en mi IDE de AndroidStudio como un módulo utilizando el menú Archivo -> Importar menús del módulo

  2. Luego fui a mi módulo principal en el que quiero que el proyecto de la biblioteca como un proyecto dependiente

  3. Haga clic derecho en el módulo principal (en mi caso su nombre es app ) -> abrir el ajuste de módulo -> ir a la pestaña de dependencias -> haga clic en el botón + (lo obtendrá en el lado derecho de la ventana) -> > Seleccione su proyecto de biblioteca de la lista

Aplique los cambios y haga clic en el botón Aceptar .

Funcionó para mí. Espero que ayude a otros también.

De hecho, como las versiones están cambiando, también cambia la interfaz de usuario y las opciones disponibles en el menú. Después de leer la mayoría de las respuestas a estas preguntas tuve que adivinar lo que funcionaría para Android Studio 1.1.0 .

  1. Con el ratón, seleccione el proyecto en el nivel principal (aquí se muestra el nombre de su aplicación).

  2. Haga clic con el botón derecho y seleccione las opciones de menú Nuevo, Carpeta, Carpeta de activos .

  3. Después de crear la carpeta de activos, pegar o copiar en él, cualquier archivo JAR que necesite para su biblioteca.

  4. En el menú principal de Android Studio (en la parte superior de la pantalla), seleccione Archivo -> Estructura del proyecto .

  5. A continuación, seleccione el nombre del proyecto y vaya a la ficha Dependencias .

  6. Haga clic en el signo más ( + ) en la parte inferior izquierda del cuadro de diálogo y seleccione la dependencia del archivo.

  7. Finalmente, abra la carpeta de activos creados recientemente, seleccione los archivos JAR que copió y, a continuación, haga clic en Aplicar y Aceptar .

Limpie y reconstruya su proyecto.

  • "La conversión al formato Dalvik falló con error 1" después de la actualización a ADT 14
  • Android Studio 1.0 y error "Los proyectos de biblioteca no pueden establecer applicationId"
  • ¿Es posible obtener el contexto de la aplicación en un proyecto de biblioteca de Android?
  • ¿Cómo hacer referencia a paquetes de dependencias en una Biblioteca de Android como .aar?
  • ¿Cómo arreglar el archivo libgnustl_shared.so duplicado que en sdks de terceros?
  • Especificación del código / nombre de la versión de la biblioteca de Android
  • ¿Qué tan inteligente es Eclipse / ADT cuando se trata de Android Library Projects?
  • Cómo pasar la clave de acceso api y la identificación de la transacción en authorize.net sdk para android?
  • No se puede resolver el símbolo AppCompatActivity - ¿No se reconocen las bibliotecas de soporte v7?
  • Android studio agregar proyecto externo a build.gradle
  • ¿Cómo implementar la función .get con FutureTask o BackgroundTask usando android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.