Gradle包装器NoClassDefFoundError

时间:2014-09-04 16:29:19

标签: gradle android-gradle gradlew

当我跑./gradlew时,我得到了

  

线程中的异常" main"的 java.lang.NoClassDefFoundError :   org / gradle / wrapper / GradleWrapperMain引起:   java.lang.ClassNotFoundException:org.gradle.wrapper.GradleWrapperMain     在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 at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)

我的项目使用Android Studio编译,但停止从命令行编译

4 个答案:

答案 0 :(得分:25)

可能事情变坏了。解决方案:

  1. 安装gradle:brew install gradle
  2. Regenarate wrapper:gradle wrapper

答案 1 :(得分:4)

请参阅https://github.com/drone/drone/issues/256

我的.gitignore中有*.jar,所以我没有在我的存储库中获得所需的所有罐子。

答案 2 :(得分:1)

尝试从命令行构建我的应用程序时遇到了相同或类似的问题,但是抛出了一个异常,因为java.lang.ClassNotFoundException:com.sun.tools.javac.util.Context&# 39;在Android Studio中构建时没有发生这种情况。我发现AS带来了它自己的JRE,我通过设置' JAVA_HOME'来解决这个问题。到AS JRE路径。就我而言,它变成了:

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

您可以在'文件'下找到此路径。 - > '项目结构' - > ' SDK位置',请参见截图。

enter image description here

答案 3 :(得分:0)

当我有一个带有“:”(没有引号,只有一个冒号)的目录时,我遇到了这个问题。

这是在 linux 机器上。

之前:

“我的:目录”

就像在

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

然后我将其重命名为

/Users/me/projects/project1/my_directory/

错误消失了。