He creado un nuevo proyecto de Flutter con Android Studio, sin cambiar nada he intentado ejecutarlo en mi teléfono para ver la app de demo y comprobar que todo estaba bien, pero al hacerlo ha saltado un error y la aplicación no se ha ejecutado.
Este error imprimía los siguientes mensajes en la consola.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 * Error running Gradle:
Exit code 1 from: \ruta-de-mi-proyecto\android\gradlew.bat app:properties:
Starting a Gradle Daemon, 1 stopped Daemon could not be reused, use --status for details
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.
FAILURE: Build failed with an exception.
* Where:
Build file '\ruta-de-miproyecto\android\app\build.gradle' line: 25
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all files for configuration 'classpath'.
> Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 1m 7s
Finished with error: Please review your Gradle project setup in the android/ folder.
Según parece, gradle está buscando una librería en los repositorios que no la puede encontrar. En concreto parece que la librería que está buscando es lint-gradle-api.jar y nos dice que la está buscando sin éxito en el repositorio https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar.
Abrimos el fichero fluter.gradle de nuestra insalación de Flutter para ver qué repositorios tiene configurados. En mi caso trabajo en windows y el fichero lo tengo en la ruta C:\flutter\packages\flutter_tools\gradle\flutter.gladle.
1
2
3
4
5
6
7
8
9
10
11 buildscript {
repositories {
jcenter()
maven {
url 'https://dl.google.com/dl/android/maven2'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
Para solucionar el problema tenemos que cambiar el orden de los repositorios que tenemos dentro de buildscript repositories, es decir, ponemos en primer lugar el positorios de google dentro de Maven y después el de jcenter.
1
2
3
4
5
6
7
8
9
10
11 buildscript {
repositories {
maven {
url 'https://dl.google.com/dl/android/maven2'
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
De esta forma, el proyecto buscará primero en el repositorio de google maven, donde sí encontrará esta librería.
En mi caso esto es lo que me ha resuelto el problema. Antes no me pasaba, pero de repente comenzó a pasar, quizá una actualización de flutter necesita este nuevo orden de repositorios pero no se hace automáticamente. Si me entero del por qué de este asunto lo comentaré por aquí.
Espero que os sirva de ayuda para vuestros proyectos.