Android Studio: Gradle sync failed: Proyecto: app declara una dependencia

Estoy trabajando en Android Studio 2.3 y quiero hacer uso de una biblioteca que encontré en github ( https://github.com/henrychuangtw/Android-ChatHead ) y no hay ningún archivo Jar. En settings.gradle he declarado el directorio en el que reside la biblioteca de esta manera:

include ':app' include ':Android-ChatHead' project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads') 

Y también he añadido la biblioteca a las dependencias build.gradle:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':Android-ChatHead') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.1.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' } 

Después de esto, si sincronizo, obtengo este error:

Gradle sync failed: Project: app declara una dependencia de la configuración 'compile' a la configuración 'default' que no está declarada en el descriptor para el proyecto: Android-ChatHead. Consulte el registro IDE para obtener más detalles (Ayuda | Mostrar registro)

Si agrego / app al final de la trayectoria del archivo en settings.gradle, consigo el error siguiente:

 Error:Dependency Doritest:Android-ChatHead:unspecified on project core resolves to an APK archive which is not supported as a compilation dependency. File: /Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads/Android-ChatHead/app/build/outputs/apk/Android-ChatHead-release-unsigned.apk 

No puedo entender lo que debo hacer.

2 Solutions collect form web for “Android Studio: Gradle sync failed: Proyecto: app declara una dependencia”

Usted no puede agregar dependencias como que por lo que sé que asumo que no hay jar para la dependencia que desea utilizar, por lo que tendrá que añadir Android-ChatHead como módulo

Para hacerlo, siga estos pasos:

  1. Haga clic en Archivo> Nuevo> Módulo de importación.
  2. En el cuadro directorio de origen, escriba o seleccione el directorio del módulo o módulos que desea importar:

    • Si está importando un módulo, indique su directorio raíz.

    • Si está importando varios módulos de un proyecto, indique la carpeta del proyecto. Para cada módulo dentro de la carpeta, aparece un cuadro e indica la ubicación de origen y el nombre del módulo. Asegúrese de que el cuadro Importar está marcado para cada módulo que desea importar.

  3. Escriba los nombres de módulo deseados en el campo Nombre del módulo.

  4. Haga clic en Finalizar.

  5. En tu settings.gradle add

    include ':app', ':Android-ChatHead'

  6. En la sección de dependencias de tu aplicación build.gradle add

    compile project(':Android-ChatHead')

  7. Limpiar / Construir el proyecto

Importación por copia y por referencia son diferentes

Lo que P.Lorand está haciendo es hacer referencia a un módulo en lugar de copiar para que cualquier modificación que realice en el módulo afecte a todas las demás aplicaciones que hacen referencia al módulo.

Con la forma de Ivan Milisavljevic, un módulo se copia a una aplicación. Ediciones realizadas en el módulo importado es eficaz sólo dentro de la aplicación, a veces buena idea, a veces una molestia.

La aplicación y el módulo tienen una estructura diferente

La aplicación tiene una raíz de aplicación y un módulo de aplicación dentro de ella, normalmente llamada app.
La raíz del módulo es el propio módulo.

Cambiando esto:

 project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads') 

a

 project(':Android-ChatHead').projectDir=new File('/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads/moduleName') 

podría ayudar.

También si está convirtiendo una aplicación en un módulo, asegúrese de cambiar el nombre de la app , dos módulos con el mismo nombre app es una promesa para el desastre.

Con Android-ChatHead

Contiene una carpeta de aplicaciones, por lo que es una aplicación y no un módulo.
Build.gradle contiene una línea de apply plugin: 'com.android.application' , por lo que el bit de application tiene que ser reemplazado por la library .
Comente el applicationId "henrychuang.tw.chatheadmsg" .
Cambie el nombre de la aplicación de nombre de módulo a otra cosa; Nunca lo he hecho manualmente, con el estudio de Android ctl + alt + r en app folfder en la pestaña Proyecto.

Entonces deberías estar bien. Intente importar por copia primero.

  • ¿Por qué Gradle crea mi módulo en el modo Release cuando la aplicación está en Debug
  • Gradle Excluir o añadir referencia para el archivo JAR duro incluido dentro de la biblioteca classes.jar
  • Dependencias de Maven con Android Studio / Gradle
  • ¿Por qué no puedo usar la tarea gradle connectedDebugAndroidTest en mi script de compilación?
  • Android Studio atascado al crear nuevo Proyecto en Gradle: Configurar Proyecto o Gradle: Resolver Dependencias ': classpath:'
  • ¿Por qué hay dos archivos build.gradle en un proyecto de Android Studio?
  • Java.exe terminó con valor de salida no nulo 2 cuando usa Facebook SDK
  • 'Dependencias' no se puede aplicar a '(groovy.lang.Closure)'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.