web-dev-qa-db-ja.com

メインクラスorg.gradle.wrapper.GradleWrapperMainが見つからないか、読み込めませんでした。

私は~/.gradle~/.m2~./Androidおよび~/workspace/project/.gradleのようなローカルディレクトリを削除し、Android StudioでFile -> Invalidate Caches / Restart...を選択することによってプロジェクト全体をきれいにしました。コマンド./gradlewを実行すると、次のような出力が表示されます。

usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

言うまでもなく、私はあまりにも多く削除しました、問題はそれが再びどのように修理されることができるかということですか?これを修正する方法がありますか。

115
SePröbläm

gradlewは、グラドルラッパーの実行可能ファイルです。Windows上のバッチスクリプトおよび他の場所にあるシェルスクリプトです。 build.gradleに次の行を含めると、

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

グラドルラッパースクリプトがソースフォルダに追加されます。ラッパースクリプトが呼び出されると、定義されているgradleバージョンをダウンロードして実行します。プロジェクトと一緒にラッパーを配布することで、誰でも事前にGradleをインストールする必要なしにそれで作業することができます。さらに良いことに、ビルドのユーザーはビルドが動作するように設計されたバージョンのGradleを使うことが保証されています。

あなたの削除の中で、あなたはgradlewが依存しているものを削除しました。ソースリポジトリからgradlewファイルだけを取り出すことも、gradleがインストールされている場合はgradle wrapperを実行して復元することもできます。

ref: Gradle Wrapper

84
RaGe

@ RaGeの答えに加えて、私は.jarファイルを無視していたグローバルなgit ignoreがあり、そのためgradle wrapper jarが決してコミットされていなかった状況に直面したかもしれません。そのため、私はJenkinsサーバで/var/lib/jenkins/my_project/gradlew buildを試みた後にこのエラーが発生していました。明示的にjarを追加してからコミットする必要がありました。

git add -f gradle/wrapper/gradle-wrapper.jar
164
HankCa

私の場合は、グローバルな.gitignoreでした @ HankCaの答えで説明されているように

各Gradleプロジェクトで忘れずにjarを追加するのではなく、グローバル.gitignoreにラッパーjarを再度含めるためのオーバーライドを追加しました。

*.jar
!gradle/wrapper/gradle-wrapper.jar

Gradleを使ったプロジェクトがたくさんあるので、これは私にとって役に立ちます。 Gitは、ラッパージャーを含めるように私に思い出させます。

gradle-wrapper.jarより上のディレクトリ(gradlewrapperなど)が無視されない限り、このオーバーライドは機能します - gitはパフォーマンス上の理由で無視されたディレクトリに下降しません

30
Alex Palmer

私にとってうまくいったのは、最初に実行することです。

 gradle wrapper

正常にビルドされた後、私は実行することができました

./gradlew assembleRelease

ソースと感謝: http://gradle.org/docs/current/userguide/gradle_wrapper.html and https://stackoverflow.com/users/745574/rage

15
niklasingvar

私の場合、取り残した wrapper コピー中のサブフォルダー gradle フォルダと同じエラーを得た。

メインクラスorg.gradle.wrapper.GradleWrapperMainが見つからないか、読み込めませんでした

他の場所からラッパーをコピーする場合は、正しいフォルダー構造があることを確認してください。

├──build.gradle 
├──gradle 
│└──wrapper 
│├──gradle-wrapper.jar 
│ └──gradlewrapper.properties 
├──gradlew 
├──gradlew.bat 
└──settings.gradle 
15
yantaq

あなたはおそらくあなたのプロジェクトのディレクトリgradle-wrapper.jarの下にgradle/wrapperファイルがないでしょう。

以下のようにbuild.gradleファイルにこのスクリプトでこのファイルを生成する必要があります、

task wrapper(type: Wrapper) {
   gradleVersion = '2.0' // version required
}

そしてタスクを実行します。

gradle wrapper

Gradle 2.4以上では、専用のタスクを追加することなくラッパーを設定することができます。

gradle wrapper --gradle-version 2.3

OR

gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.Zip

すべての詳細は見つけることができます このリンク

7
Luna Kong

gradlew.batをルートフォルダにコピーし、gradlew-wrapperをgradlewフォルダにコピーすることもできます。

それは私の仕事です。

4
Guy

私はこれに遭遇したとき私は上からの答えに従った。そして、あなたがこの問題を抱えているのであれば、jarとpropertiesファイルの両方をプッシュすることを忘れないでください。この2つの後、私はこの問題を解決するのをやめました。

git add -f gradle/wrapper/gradle-wrapper.jar
git add -f gradle/wrapper/gradle-wrapper.properties
3
Jose Peralez

私の場合(windows 10を使用)、gradlew.batには次のコード行があります。

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

APP_HOME変数は基本的にプロジェクトのグラデーションルートフォルダです。したがって、これが何らかの形で乱れている場合は、次のようにします。

エラー:メインクラスorg.gradle.wrapper.GradleWrapperMainが見つからないか、読み込めませんでした。

私の場合、プロジェクトのフォルダ構造にアンパサンド(&)が含まれていたため、これはめちゃくちゃになっていました。例えばC:\ Test&Dev\MyProject

そのため、gradelは、C:\ Testのルートフォルダでgradle-wrapper.jarファイルを見つけようとしていました( '&'を含むすべての部分を削除)

これを見つけるには、上記のAPP_HOME =%DIRNAME%行の下に次の行を追加します。その後、結果を確認するためにbatファイルを実行しました。

echo "%APP_HOME%"

パス/ディレクトリを壊す可能性のある他のいくつかの「特殊文字」があるでしょう。

3
Neil Watson

Gradle 5.xでは、次を使用します。

wrapper {
    gradleVersion = '5.5.1'
}

私は次の修正でこの問題を修正しました(多分それは誰かに役立つでしょう)。

プロジェクトフォルダの親フォルダに、スペースや他の禁止された文字が含まれているかどうかを確認してください。もしそうなら - それを削除します。

"C:¥Users¥someuser¥Test Projects¥testProj" - この場合、 "Test Projects"は "TestProjects"になります。

1
Ihor Khomiak

私の場合はgradle-wrapper.jarがたくさんのファイルを置き換えた後に壊れてしまいました。元の状態に戻すと問題は解決しました。

1
NeeK

私の場合も@HankCaが問題を解決しました。私は自分の危険な**/*.jar無視をsrc/**/lib/*.jarのような自明のものに変更することにしました。 **/*で始まる無視は少々危険ですが、少なくとも私にとっては危険です。それを見ているだけで、.gitignore行の背後にあるアイデアを取得することは常に良いアイデアです。

1
user6408185

私は同じエラーを見ましたが、私の場合は、LFSがインストールされていない新しいGitインストールでした。問題のレポジトリはLFSで設定され、gradle-wrapper.jarはLFSにあったため、LFSサーバーへのポインタのみが含まれていました。ソリューションは簡単で、実行するだけです。

git lfs install

そして、新しいクローンがトリックを行いました。 git lfs pullまたはgit pullだけでも助けられたと思いますが、問題のある人は代わりに新しいクローンを作成することにしました。

0
cb2

新しいプロジェクトの場合は、既存のフォルダを削除して$ npm install -g react-native-cliを実行します。

エラーなく実行されることを確認します

0
vineet

私の場合は、gradlewフォルダとgradleフォルダをプロジェクトから削除しました。 intellijのGradleプロジェクトウィンドウから "Run Gradle Task"を通してクリーンビルドタスクを再実行

enter image description here

0
Saurabh

Gradleバージョン5以降では、このコマンドは私の問題を解決しました:

グラドルラッパー

https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper

0
Raymond Chenon