私はAndroid Studioを使用しようとしていますが、初めて起動したときは、コンパイルに45分ほどかかります。アプリケーションを終了しないのであれば、問題ありません。 45秒が好きです。
私は自分のキャッシュのいくつかをチェックしようとしました。私のホームディレクトリに.gradle/caches
フォルダがあり、それは123 MBの大きさのようなものです。
私のプロジェクトフォルダには.gradle
フォルダもあります。taskArtifacts
の1つは200 MBくらいでした。私はただ両者を無作為に核にするのが怖い。フォルダのどの部分を削除しても安全ですか?
最初にアプリケーションをロードしたときに、なぜ私のAndroid Studioがgradle assemble
タスクを実行するために永遠に時間を費やしているのかについて、より良い説明がありますか?
Intellijキャッシュもクリアする必要がありますか?
プロジェクトディレクトリの下にある.gradle
フォルダ全体を安全に削除できます。タスクが実行されるたびに再作成されます。ホームディレクトリの下の.gradle
も同じです。それも同様に再作成されますが、依存関係全体をもう一度ダウンロードしなければなりません - それはかなり時間がかかります。
私はAndroid開発のためのWeb gradleを介してさまざまな場所で見ているように非常に遅く、人々はそれについて文句を言います。正確に理由が分からない - これはそれがどのように機能するかです。
パフォーマンスが低いのは大きなフォルダが原因ではないと思います。実際に彼らはそれが速くなるのを助けます。
@ Bradford20000がコメントで指摘しているように、gradle.properties
の下にグローバルGradeスクリプトと同様に$HOME/.gradle
ファイルがあるかもしれません。このような場合、このディレクトリの内容を削除するときは特に注意が必要です。キャッシュディレクトリはGradle
ビルドキャッシュを保持します。それであなたがそれについて何かエラーがあればあなたはそれを削除することができます。 .gradle/caches
にあります
Gradle キャッシュの場所
%USER_HOME%\.gradle/caches/
$HOME/.gradle/caches/
これらのディレクトリを参照して手動で削除するか、実行することができます。
rm -rf $HOME/.gradle/caches/
unixシステムでは。このコマンドを実行すると、依存関係のダウンロードも強制されます。
アップデート2: Android 現在のプロジェクトのキャッシュをクリア /
注意:Android Studioの ファイル|キャッシュの無効化/再起動 Androidのビルドキャッシュを消去しないので、個別に消去する必要があります。
Windowsの場合
gradlew cleanBuildCache
MacまたはLinuxの場合
./gradlew cleanBuildCache
gradleタスクを使用した最新の解決策
cleanBuildCache
gradleのAndroidプラグイン、リビジョン2.3.0(2017年2月)で入手可能
依存関係:
さらに詳しく:
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はスクリプトを含むシステム固有のファイルです - スクリプトを実行する方法についてはシステム情報をご覧ください。
Gradleデーモンには注意して、クリアする前にそれを停止してgradleを再実行する必要があります。
最初のデーモンを停止します。
./gradlew --stop
以下でキャッシュを消去します。
rm -rf〜/ .gradle/caches /
コンパイルをもう一度実行する
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によってファイルが削除されます。
より良い方法は、ファイルを自動的にゴミ箱/ごみ箱に移動するか、少なくとも先にゴミ箱にコピーすることです。しかし、その方法がわかりません。
ここに間違った情報が投稿されているようです。 Androidビルダーキャッシュ(タスクcleanBuildCache
を使用)をクリアする方法を報告する人もいますが、このキャッシュがGradleのビルドキャッシュAFAIKから独立していることを認識していないようです。
私の理解では、AndroidのキャッシュはGradleに先立って(そしてインスピレーションを受けて)いますが、私は間違っているかもしれません。 AndroidビルダーがGradleのキャッシュを使用し、独自のキャッシュを廃止するように更新されるかどうかはわかりません。
コマンド:rm -rf ~/.gradle/caches/