web-dev-qa-db-ja.com

GradleラッパーNoClassDefFoundError

./gradlewを実行すると、

スレッド "main"の例外Java.lang.NoClassDefFoundError:org/gradle/wrapper/GradleWrapperMain原因:Java.lang.ClassNotFoundException:Java.net.URLClassLoader $ 1のorg.gradle.wrapper.GradleWrapperMain。 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) Sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.Java:301)のJava.lang.ClassLoader.loadClass(ClassLoader.Java:247)

私のプロジェクトはAndroid Studioを使用してコンパイルしますが、コマンドラインからのコンパイルを停止しました

18
Gal Bracha

おそらく何かがうまくいかなかった。ソリューション:

  1. Gradleをインストールします:brew install gradle
  2. ラッパーを再生成します:gradle wrapper
31
Gal Bracha

https://github.com/drone/drone/issues/256 を参照してください

ぼくの .gitignore 持っていました *.jarその中にあるので、必要なすべてのjarファイルをリポジトリに取得できませんでした。

6
Craig Pemberton

コマンドラインからアプリをビルドしようとしたときに同じまたは同様の問題が発生しましたが、ビルド時に発生しなかった「Java.lang.ClassNotFoundException:com.Sun.tools.javac.util.Context」に対して例外がスローされました。 within AndroidStudio。ASが独自のJREをもたらすことがわかり、「Java_HOME」をAS JREパスに設定することで問題を解決しました。私の場合、次のようになりました。

$ Java_HOME=/opt/Android-studio/jre ./gradlew build

このパスは、「ファイル」->「プロジェクト構造」->「SDKの場所」の下にあります。スクリーンショットを参照してください。

enter image description here

1
jokki