はじめに
この記事はAndroid 初心者向け Advent Calendar 2019の19日目の記事です。
https://qiita.com/advent-calendar/2019/android_beginners
こんばんは。
みなさんはAndroidStudioで開発しているときに、文法エラーを起こしているつもりがないけれど、
エラーが出てビルドできない状態になったことはありませんか?私はあります。
そのときに試してきたことをこの記事ではまとめてみたいと思います。
なお、記事中のAndroidStudioのバージョンは3.5.2(執筆時の安定最新版)とします。
Rebuild Project
Clean Project
中間ビルドやキャッシュ ビルドファイルを消すのみ。
ただ、これだけだとデータバインディング等で作成されるファイルも消えたままなのでRebuild ProjectやMake Moduleの実行を行うこと。
Rebuild Project と Clean Projectの違い
公式リファレンスによると、
Clean Projectはすべての中間物を消す、Rebuild Projectは対象のビルド バリアントに対してClean Projectしたあと、APKを作成するらしい。
公式リファレンス
https://developer.android.com/studio/run/index.html?hl=ja#reference
データバインディングやアノテーションプロフェッサーでのクラス自動生成のみを行い、
apkまでは不要という場合、Make Moduleで十分。
BuildConfig等、一部のクラスはClean Projectでも消えないので
そういうのまで消したいときは gradleのcleanを使用する。
AndroidStudioの右端のGradleからcleanをダブルクリック
Android Gradle Pluginのビルドキャッシュ
AndroidのGradle Pluginもキャッシュを使うようです。
自分はなったことありませんが、Gradle Pluginのバージョンアップを行うと
エラーになったという場合は有効なんじゃないでしょうか。
AndroidStudioの右端のGradleからcleanBuildCacheをダブルクリック
参考
ビルド キャッシュによるクリーンビルドの高速化
https://developer.android.com/studio/build/build-cache?hl=ja
AnddroidStudioのキャッシュ
Invalidate Cashes / Restart
FileからInvalidate Cashes / Restartを選択後、
以下、AndroidStudioを一旦終了すること。※以下操作注意
(AndroidStudioがキャッシュをつかんだままだと削除できない、または削除されない恐れがあるため)
また、以下から手動でファイルを消すことになるので操作には要注意。
Gradleのキャッシュ
rm -rf ~/.gradle
.gradleの中にキャッシュ用のディレクトリがあったりするんだけど、再ダウンロードされるのでまるごと削除でもOK
なお、プロジェクト直下にもあるのでここでも削除
(PROJECT_DIRに移動したあと)
rm -rf .gradle/
再作成されるのでまるごと削除でもOK。
IDEのキャッシュ
AndroidStudioのベースとなったIDEが
PROJECT_DIR/.idea
にキャッシュを使っているので、そこでも削除。
※ workspace.xml、usage.statistics.xml、tasks.xmlは必要なのでそれらのファイルは消さないこと。
※ プロジェクトによってはあえて共有しているものもあります。注意
コマンド一発で消すなら以下
(PROJECT_DIRに移動したあと)
find .idea -type f | grep -v "(workspace|usage.statistics|tasks).xml" | xargs rm
プロジェクト全体の設定ファイル
*.iml
samuraism様のサポート情報によるとGradleプロジェクトなら不要とのこと
(PROJECT_DIRに移動したあと)
find . -type f | grep iml$ | xargs rm
参考
https://qiita.com/takahirom/items/af6b83edd0dc3294046f
https://qiita.com/kirimin/items/706523d637fd09152122