Veo la siguiente advertencia cuando construyo en Android Studio:
Debe evitarse el uso de flatDirs porque no admite ningún formato de metadatos.
Me estoy integrando con un aar que está empaquetado localmente en mi libs
directorio. ¿Hay otra forma de integrar sin agregar el siguiente bloque problemático a mi build.gradle
?
repositories {
flatDir {
dirs 'libs'
}
}
usman rana
dentro de tu build.gradle
archivo,
agregue la siguiente pieza de código en el bloque de Android:
android { ..
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
y agregue la dependencia como:
implementation (files("libs/test_name.aar"))
eliminar el siguiente bloque:
repositories {
flatDir {
dirs 'libs'
}
}
-
¿En qué archivo? Por favor da más detalles
– Tortuga ninja
10 de mayo de 2022 a las 9:14
-
en build.gradle del módulo de la aplicación
-Usman Rana
10 de mayo de 2022 a las 9:36
Utilizar el LIBRES directorio. Elimine ese código y reemplácelo por el siguiente en el módulo.gradle.
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
Puedes agregar el aar así, sin necesidad de usar flatDir
:
dependencies {
implementation files('/path/to/dir/something_local.aar')
}
-
Esto no funciona para mí. Tal vez espera la
aar
estar en los proyectoslib
dir, o no funciona en Windows.– Daniel F.
11 oct 2021 a las 12:11
-
Estoy en Windows y está funcionando. La ruta es relativa al submódulo gradle, no a la carpeta raíz del proyecto. No se espera nada relacionado con
lib
. Es solo un camino.– Petrakeas
14 oct 2021 a las 9:18
-
sencillo y funcional
– manejador de la suerte
21 de septiembre de 2022 a las 7:48
- Paso 1. En el archivo app/build.gradle
apply plugin: ....
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
- Paso 2. A nivel de proyecto/archivo build.gradle, elimine el siguiente bloque:
allprojects {
repositories {
flatDir {
dirs 'libs'
}
}
}
Podría publicar ese AAR en Maven Local (
publishToMavenLocal
) y consumirlo desde allí. O publíquelo en algún otro repositorio de Maven (por ejemplo, uno privado para su equipo).– CommonsWare
1 de julio de 2021 a las 19:01
También puede definir un repositorio local de Maven o Ivy directamente dentro de la estructura de directorios de su proyecto. De esta forma, podría conservar los archivos con el proyecto y seguir beneficiándose del uso de metadatos de dependencia. Supongo que Maven requiere que agregues (y tal vez crees)
.pom
archivos, pero creo que Ivy podría extraer los metadatos directamente del nombre del archivo.– Lukas Körfer
2 de julio de 2021 a las 0:58
@LukasKörfer, ¿puede explicar un poco más lo que quiere decir con “También puede definir un repositorio local de Maven o Ivy directamente dentro de la estructura del directorio de su proyecto”? ¿Hay alguna guía a la que pueda vincular para esto? No entiendo qué pondrías para la “url” del repositorio Maven/Ivy en tu build.gradle en este caso. Presumiblemente, necesitaría colocar una URL de tipo “archivo: //” y esto dependería exactamente de dónde se encuentra el proyecto en el sistema de archivos, lo que puede diferir entre los desarrolladores, sin mencionar el sistema operativo.
– Adam Burley
7 de julio de 2021 a las 14:23