27

When I run ./gradlew I get

Exception in thread "main" java.lang.NoClassDefFoundError: org/gradle/wrapper/GradleWrapperMain Caused by: java.lang.ClassNotFoundException: org.gradle.wrapper.GradleWrapperMain at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

My project compiles using the Android Studio but stopped compiling from command line

Gal Bracha
  • 19,004
  • 11
  • 72
  • 86

4 Answers4

46

Probably something went bad. The solution:

  1. Install gradle: brew install gradle
  2. Regenerate wrapper: gradle wrapper
Nicolas Raoul
  • 58,567
  • 58
  • 222
  • 373
Gal Bracha
  • 19,004
  • 11
  • 72
  • 86
10

See https://github.com/drone/drone/issues/256

My .gitignore had *.jar in it, so I wasn't getting all the jars I needed in my repository.

Craig Pemberton
  • 394
  • 2
  • 10
  • 1
    Thank you, this has also been my problem. Without your hint I probably would have searched endlessly. – Harold L. Brown Mar 10 '20 at 12:30
  • In this case, you might consider adding both `*.jar` and `!gradle/wrapper/gradle-wrapper.jar` to your `.gitignore` file – diogo Jul 12 '21 at 15:42
1

I had the same, or similar, problem when trying to build my app from command line, but with an exception thrown for 'java.lang.ClassNotFoundException: com.sun.tools.javac.util.Context' which did not happen when building within Android Studio. I found out that AS brings along it's own JRE and I resolved the issue by setting 'JAVA_HOME' to the AS JRE path. In my case it turned into:

$ JAVA_HOME=/opt/android-studio/jre ./gradlew build

You can find this path under 'File' -> 'Project Structure' -> 'SDK Location', see screenshot.

enter image description here

jokki
  • 251
  • 5
  • 13
1

I hit this issue when I have a directory with a ":" (no quotes, just a colon) in it.

This was on a linux machine.

Before:

"my:directory"

as in

/Users/me/projects/project1/my:directory/

then i renamed it to

/Users/me/projects/project1/my_directory/

and the error went away.

granadaCoder
  • 26,328
  • 10
  • 113
  • 146