Limpié todo el proyecto mediante la supresión de los directorios locales como ~/.gradle
, ~/.m2
~./android
y ~/workspace/project/.gradle
, y eligiendo File -> Invalidate Caches / Restart...
en Android Studio. Ahora la ejecución del comando ./gradlew
conduce a la siguiente salida:
usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Huelga decir que eliminé demasiado, la pregunta es ¿cómo se puede reparar nuevamente? ¿Tienes alguna idea de cómo solucionar esto?
android-studio
gradle
android-gradle-plugin
gradlew
SePröbläm
fuente
fuente
gradle wrapper
nuevamente para regenerar el código faltante ... esto se supone que no tiene una configuración de control de fuente.Respuestas:
Falta su envoltorio de gradle, está roto o dañado.
Qué es gradle wrapper:
gradlew
es el ejecutable de gradle wrapper: script por lotes en Windows y script de shell en otros lugares. Cuando se invoca el script de contenedor, descarga la versión gradle definida y la ejecuta. Al distribuir el contenedor con su proyecto, cualquiera puede trabajar con él sin necesidad de instalar Gradle de antemano. Aún mejor, los usuarios de la compilación tienen garantizado el uso de la versión de Gradle para la cual fue diseñada la compilación.Restauración de gradle wrapper:
solía ser necesario agregar una
wrapper
tarea a su build.gradle para restaurar gradle wrapper y todas sus dependencias. Por ejemplo:Las versiones más nuevas de gradle no requieren esto. Ahora es una tarea incorporada. Solo corre:
También puede proporcionar indicadores adicionales para especificar versiones, etc.
Cuando ejecuta esta tarea, se agrega un script de envoltura de gradle y los archivos jar necesarios a sus carpetas de origen. Las propiedades se almacenan en gradle / wrapper / gradle-wrapper.properties
(Es posible que necesite instalar gradle localmente para ejecutar esto.
brew install gradle
En Mac, por ejemplo. Consulte las instrucciones más detalladas aquí )¿Por qué faltaba en primer lugar?
OP parece haber eliminado algo de lo que depende el envoltorio de gradle.
Pero una razón común es que una entrada .gitignore evita que los frascos de envoltura se registren en git. Tenga en cuenta que el .gitignore en efecto puede estar en la carpeta de origen, o global en la carpeta de inicio de su usuario o en la configuración global de git. Es común tener una
*.jar
entrada en .gitignore.Puede agregar una excepción para los archivos jar de gradlew en .gitignore
o forzar agregar el frasco de envoltura en git
ref: Gradle Wrapper
fuente
Además de la respuesta de @ RaGe, puede ser la situación a la que me enfrenté cuando tuve un error global que ignoraba los
.jar
archivos y, por lo tanto, el contenedor de gradle wrapper nunca se comprometió. Por lo tanto, recibí ese error en el servidor Jenkins después de un intento/var/lib/jenkins/my_project/gradlew build
. Tuve que forzar explícitamente una adición del jar y luego confirmar:fuente
Lo que funcionó para mí es correr primero:
Después de una construcción exitosa pude ejecutar
Fuente y agradecimientos: http://gradle.org/docs/current/userguide/gradle_wrapper.html y https://stackoverflow.com/users/745574/rage
fuente
Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
En mi caso, era global
.gitignore
, como se explica en la respuesta de @ HankCa .En lugar de agregar a la fuerza el jar, que deberá recordar hacer en cada proyecto de Gradle, agregué una anulación para volver a incluir el contenedor en mi global
.gitignore
:Esto es útil para mí, ya que tengo muchos proyectos que usan Gradle; Git ahora me recordará que incluya el tarro de envoltura.
Esta anulación funcionará siempre que no se ignoren los directorios anteriores
gradle-wrapper.jar
(comogradle
ywrapper
); git no descenderá a los directorios ignorados por razones de rendimiento .fuente
En mi caso, wrapperomití la subcarpeta mientras copiaba la gradlecarpeta y obtuve el mismo error.
No se pudo encontrar o cargar la clase principal org.gradle.wrapper.GradleWrapperMain
asegúrese de tener la estructura de carpetas correcta si copia el contenedor desde otra ubicación.
fuente
gradle wrapper
le dará exactamente el mismo resultado;)Probablemente le falte el
gradle-wrapper.jar
archivo en el directoriogradle/wrapper
de su proyecto.Debe generar este archivo a través de este script en el archivo build.gradle como se muestra a continuación,
y ejecutar tarea:
Con Gradle 2.4 (o superior) puede configurar un contenedor sin agregar una tarea dedicada:
O
Todos los detalles se pueden encontrar en este enlace
fuente
gradle/wrapper
dir. Esto puede remediarse ejecutando logralde wrapper
que ha indicado.Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
también puede copiar gradlew.bat en su carpeta raíz y copiar el gradlew-wrapper en la carpeta gradlew.
Eso es trabajo para mí.
fuente
Seguí las respuestas de arriba cuando me encontré con esto. Y si tiene este problema, asegúrese de forzar la inserción de los archivos jar y de propiedades. Después de estos dos, dejé de tener este problema.
fuente
En mi caso (usando Windows 10) gradlew.bat tiene las siguientes líneas de código en:
La variable APP_HOME es esencialmente una carpeta raíz graduada para el proyecto, por lo tanto, si esto se complica de alguna manera, obtendrá:
Para mí, esto se había estropeado porque la estructura de la carpeta de mi proyecto tenía un ampersand (&). Por ejemplo, C: \ Test & Dev \ MyProject
Entonces, Gradel estaba tratando de encontrar el archivo gradle-wrapper.jar en una carpeta raíz de C: \ Test (quitando todo después e incluyendo el '&')
Encontré esto agregando la siguiente línea debajo del conjunto APP_HOME =% DIRNAME% línea arriba. Luego ejecutó el archivo bat para ver el resultado.
Habrá algunos otros 'caracteres especiales' que podrían romper una ruta / directorio.
fuente
Vi el mismo error pero en mi caso fue una instalación nueva de Git sin LFS instalado. El repositorio en cuestión se configuró con LFS y gradle-wrapper.jar estaba en LFS, por lo que solo contenía un puntero al servidor LFS. La solución era simple, solo ejecuta:
Y un clon nuevo hizo el truco. Supongo que
git lfs pull
o simplementegit pull
podría haber ayudado también, pero la persona con el problema decidió hacer un clon nuevo.fuente
@HankCa resolvió el problema en mi caso también. Decidí cambiar mis
**/*.jar
ignorantes peligrosos por otros que se explican por sí mismos, comosrc/**/lib/*.jar
evitar estos problemas en el futuro. Ignorar si comienza con ** / * es un poco demasiado peligroso, al menos para mí. Y siempre es una buena idea tener la idea detrás de una fila .gitignore con solo mirarla.fuente
En mi caso, gradle-wrapper.jar se corrompió después de reemplazar un montón de archivos. Volviendo al original resolvió el problema.
fuente
Solucioné este problema con la próxima solución (tal vez ayude a alguien):
Simplemente verifique si las carpetas principales de la carpeta de su proyecto tienen nombres con espacios u otros caracteres prohibidos. En caso afirmativo, quítelo.
"C: \ Users \ someuser \ Test Projects \ testProj": en este caso, "Test Projects" debería ser "TestProjects".
fuente
En Gradle 5.x yo uso:
fuente
En mi caso, había eliminado gradlew y gradle carpetas del proyecto. Vuelva a limpiar las tareas de compilación a través de "Ejecutar tarea Gradle" desde la ventana Proyectos Gradle en intellij
fuente
Para Gradle versión 5+, este comando resolvió mi problema:
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper
fuente
si es un proyecto nuevo, elimine la carpeta existente y ejecute $ npm install -g react-native-cli
compruebe que se ejecuta sin ningún error
fuente