[解決済み] メインクラス org.gradle.wrapper.GradleWrapperMain が見つからない、またはロードできない。
質問
のようなローカルディレクトリを削除して、プロジェクト全体をクリーンアップしました。
~/.gradle
,
~/.m2
~./android
と
~/workspace/project/.gradle
を選択し
File -> Invalidate Caches / Restart...
をAndroid Studioで実行します。
これで、コマンドの実行
./gradlew
は、次のような出力をもたらします。
usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
言うまでもなく、削除しすぎました。問題は、どうすれば再び修復できるかということです。どうすれば直るのか、何かいい方法はないでしょうか?
解決方法を教えてください。
gradleのラッパーが見つからない、壊れている、または破損している。
gradle wrapperとは何ですか。
gradlew
は、gradleのラッパー実行ファイル(Windowsではバッチスクリプト、それ以外ではシェルスクリプト)です。このラッパースクリプトを起動すると、定義されたgradleのバージョンをダウンロードし、実行します。ラッパーをプロジェクトと一緒に配布することで、Gradleを事前にインストールすることなく、誰でも作業を行うことができます。さらに良いことに、ビルドのユーザーは、ビルドが動作するように設計されたGradleのバージョンを使用することが保証されています。
gradleラッパーを復元する。
以前は、このような場合は
wrapper
タスクに追加して、gradle ラッパーとその依存関係をすべてリストアします。例えば、以下のような感じです。
task wrapper(type: Wrapper) {
gradleVersion = '4.1'
}
新しいバージョンのgradleでは、この作業は必要ありません。ビルトインタスクになりました。実行するだけです。
gradle wrapper
また、バージョンなどを指定するフラグを追加で指定することもできます。
gradle wrapper --gradle-version 6.2 --distribution-type all
このタスクを実行すると、gradle ラッパースクリプトと必要な jar ファイルがソースフォルダに追加されます。プロパティは、gradle/wrapper/gradle-wrapper.propertiesに保存されます。
(これを実行するためには、ローカルにgradleをインストールする必要がある場合があります。
brew install gradle
をMacで使用する場合など。より詳細な説明を見る
こちら
)
そもそも、なぜ欠落していたのでしょうか?
gradle wrapperが依存しているものを削除したようです。
しかし、よくある理由は、.gitignore エントリによって wrapper jar が git にチェックインされないようにすることです。.gitignore は、ソースフォルダ内にもありますし、ユーザーのホームフォルダや git のグローバル設定にあるグローバルなものもあります。一般的には
*.jar
のエントリを削除してください。
.gitignoreにgradlewのjarファイルに対する例外を追加することができます。
*.jar
!gradle/wrapper/gradle-wrapper.jar
または、ラッパーjarをgitに強制的に追加します。
git add -f gradle/wrapper/gradle-wrapper.jar
を参照してください。 Gradle ラッパー
関連
-
[解決済み] Android Studio で Maven の外部 lib を使用しているため、名前空間 'app' がバインドされていない。
-
[解決済み] Gradleのエラーです。イベントディスパッチスレッドからの書き込みアクセスは、Android Studioでのみ許可されます。
-
[解決済み] Android StudioのGradleとは?
-
[解決済み] Android Studioでプロジェクト全体の文字列の出現箇所をすべて検索する
-
[解決済み】Android Studioが突然シンボルを解決できなくなった。
-
[解決済み】Android Studioの.imlファイルとは何ですか?
-
[解決済み】LogCatにフィルターオプションがない。
-
[解決済み] コマンドラインからAndroid Studioアプリをビルドする
-
[解決済み] colorpidによるandroid studioでのカラーlogcat。
-
[解決済み] Firebase App Indexingのサポートがない(android lint)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】JVMのヒープ領域を使い果たしたため、デーモンが終了する。
-
[解決済み】引数のcompile()メソッドが見つからない Gradle
-
[解決済み] Android Studioでメソッド情報を表示する方法
-
[解決済み] IntelliJ IDEAの起動時に前回のプロジェクトを開かないようにするには?
-
[解決済み】Android Studioで未使用のインポートを削除する。
-
[解決済み】windows 10のadb.exeはどこにありますか?
-
[解決済み] Android Studioのインラインコンパイラで赤いエラーが表示されるが、gradleでのコンパイルは正常に行われる
-
[解決済み] Firebase App Indexingのサポートがない(android lint)
-
[解決済み] Android Studioでライブラリプロジェクトを作成し、そのライブラリプロジェクトを使用するアプリケーションプロジェクトを作成する方法
-
[解決済み] 未解決のリファレンス: kotlinx