web-dev-qa-db-ja.com

グラドルキャッシュをクリアする方法

私はAndroid Studioを使用しようとしていますが、初めて起動したときは、コンパイルに45分ほどかかります。アプリケーションを終了しないのであれば、問題ありません。 45秒が好きです。

私は自分のキャッシュのいくつかをチェックしようとしました。私のホームディレクトリに.gradle/cachesフォルダがあり、それは123 MBの大きさのようなものです。

私のプロジェクトフォルダには.gradleフォルダもあります。taskArtifactsの1つは200 MBくらいでした。私はただ両者を無作為に核にするのが怖い。フォルダのどの部分を削除しても安全ですか?

最初にアプリケーションをロードしたときに、なぜ私のAndroid Studioがgradle assembleタスクを実行するために永遠に時間を費やしているのかについて、より良い説明がありますか?

Intellijキャッシュもクリアする必要がありますか?

207
David T.

プロジェクトディレクトリの下にある.gradleフォルダ全体を安全に削除できます。タスクが実行されるたびに再作成されます。ホームディレクトリの下の.gradleも同じです。それも同様に再作成されますが、依存関係全体をもう一度ダウンロードしなければなりません - それはかなり時間がかかります。

私はAndroid開発のためのWeb gradleを介してさまざまな場所で見ているように非常に遅く、人々はそれについて文句を言います。正確に理由が分からない - これはそれがどのように機能するかです。

パフォーマンスが低いのは大きなフォルダが原因ではないと思います。実際に彼らはそれが速くなるのを助けます。

@ Bradford20000がコメントで指摘しているように、gradle.propertiesの下にグローバルGradeスクリプトと同様に$HOME/.gradleファイルがあるかもしれません。このような場合、このディレクトリの内容を削除するときは特に注意が必要です。キャッシュディレクトリはGradleビルドキャッシュを保持します。それであなたがそれについて何かエラーがあればあなたはそれを削除することができます。 .gradle/cachesにあります

213
Opal

Gradle キャッシュの場所

  • Windowsの場合:%USER_HOME%\.gradle/caches/
  • Mac/Unixの場合:$HOME/.gradle/caches/

これらのディレクトリを参照して手動で削除するか、実行することができます。

rm -rf $HOME/.gradle/caches/

unixシステムでは。このコマンドを実行すると、依存関係のダウンロードも強制されます。

アップデート2: Android 現在のプロジェクトのキャッシュをクリア /

注意:Android Studioの ファイル|キャッシュの無効化/再起動 Androidのビルドキャッシュを消去しないので、個別に消去する必要があります。

Windowsの場合

gradlew cleanBuildCache

MacまたはLinuxの場合

./gradlew cleanBuildCache
246
Bao Le

gradleタスクを使用した最新の解決策

cleanBuildCache

gradleのAndroidプラグイン、リビジョン2.3.0(2017年2月)で入手可能

依存関係:

  1. Gradle 3.3以上.
  2. ビルドツール25.0.0以上。

さらに詳しく:

https://developer.Android.com/studio/build/build-cache.html#clear_the_build_cache

バックグラウンド

ビルドキャッシュ:

プロジェクトをビルドするときにAndroidプラグインが生成する特定の出力を格納します(パッケージ化されていないAARや事前依存リモート依存など)。ビルドシステムはキャッシュされたファイルを再構築するのではなく、後続のビルド中にそれらを再利用することができるため、キャッシュを使用している間はクリーンビルドがはるかに高速になります。 Androidプラグイン2.3.0以降を使用しているプロジェクトは、デフォルトでビルドキャッシュを使用します。詳しくは、「ビルドキャッシュによるビルド速度の向上」をご覧ください。

注:ビルドキャッシュを無効にした場合、cleanBuildCacheタスクは使用できません。

用法:

gradlew cleanBuildCache

linux/mac

gradle cleanBuildCache

Android Studio/IntelliJ

gradle tab (default on right) select and run the task or add it via the configuration window 

** gradle/gradlewはスクリプトを含むシステム固有のファイルです - スクリプトを実行する方法についてはシステム情報をご覧ください。

  1. linux - https://www.cyberciti.biz/faq/howto-run-a-script-in-linux/
  2. windows - https://technet.Microsoft.com/ja-jp/library/bb613481(v=vs.85).aspx
  3. mac https://developer.Apple.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/index.html
48
ceph3us

Gradleデーモンには注意して、クリアする前にそれを停止してgradleを再実行する必要があります。

最初のデーモンを停止します。

./gradlew --stop

以下でキャッシュを消去します。

rm -rf〜/ .gradle/caches /

コンパイルをもう一度実行する

4
rresino

Gradleデーモンは、ビルドログごとに大きなテキストファイルを多数作成します。それらはここに格納されています。

~/.gradle/daemon/X.X/daemon-XXXX.out.log

"X.X"は "4.4"のように使用中のグラドルバージョンで、 "XXXX"は "1234"のように単なる乱数です。

合計サイズはたった数ヶ月で数百MBになることがあります 。ログを無効にする方法はなく、ファイルは自動的に削除されないため、実際に保存する必要はありません。

しかし、 小さなgradleタスクを作成してそれらを自動的に削除することができます そしてたくさんのディスクスペースを解放することができます。

これをapp/build.gradleに追加してください。

Android {

    buildTypes {
        ...
    }

    // Delete large build log files from ~/.gradle/daemon/X.X/daemon-XXX.out.log
    // Source: https://discuss.gradle.org/t/gradle-daemon-produces-a-lot-of-logs/9905
    def gradle = project.getGradle()
    new File("${gradle.getGradleUserHomeDir().getAbsolutePath()}/daemon/${gradle.getGradleVersion()}").listFiles().each {
        if (it.getName().endsWith('.out.log')) {
            // println("Deleting gradle log file: $it") // Optional debug output
            it.delete()
        }
    }
}

どのファイルが削除されているかを見るには、Android Studio - > View - > Tool Windows - > Buildのデバッグ出力を見ることができます。それからそのウィンドウの「表示切り替え」ボタンを押してテキスト出力を表示します。

Gradle SyncまたはGradle Buildによってファイルが削除されます。

より良い方法は、ファイルを自動的にゴミ箱/ごみ箱に移動するか、少なくとも先にゴミ箱にコピーすることです。しかし、その方法がわかりません。

3
Mr-IDE

ここに間違った情報が投稿されているようです。 Androidビルダーキャッシュ(タスクcleanBuildCacheを使用)をクリアする方法を報告する人もいますが、このキャッシュがGradleのビルドキャッシュAFAIKから独立していることを認識していないようです。

私の理解では、AndroidのキャッシュはGradleに先立って(そしてインスピレーションを受けて)いますが、私は間違っているかもしれません。 AndroidビルダーがGradleのキャッシュを使用し、独自のキャッシュを廃止するように更新されるかどうかはわかりません。

0
Lanchon

コマンド:rm -rf ~/.gradle/caches/

0
Zinan Xing