#本記事について
「あれれ?うまくアプリが実行されないぞ?」
---LogCatを見る---
「いや、特に気になるエラーはでてないなぁ…。」
上記のように、何の取っ掛かりもない時にまずすべきことをまとめていきます。
多分、随時更新していきます。
#PC再起動/ キャッシュクリア
何においても「今まで上手くいっていたのに突然上手くいかなくなった!💦」
の場合は、一に再起動、二にキャッシュクリアです。
それでも上手くいかない場合は以下をお試しください。
#$ adb kill-serverする
ターミナルで$ ads kill-server
を叩いてから、エミュレーターを再起動してください。
$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully
となったらokです。
#エミュレータが接続状態か確認する
画像の※1と※2を確認します。
※1に関して、プルダウンをクリックし、エミュレータがDEADまたはOFFLINEになっていないか確認。
※2に関して、プルダウンをクリックし、実行したいアプリのプロジェクトになっているか確認。
※1がDEADまたはOFFLINEになっている場合
プルダウンをクリックして、DEADまたはOFFLINEではないエミュレータが存在した場合はそっちをクリックしましょう。そっちのエミュレータは生きてるかもしれません。
また、そのやり方で上手くいかなかった場合やプルダウンの中に生きてるエミュレータが存在しなかった場合はTools->AVD Manager
でAVD Managerを表示し、Actions
の一番右端のプルダウンからDelete
を選択して一度エミュレータを削除した後に新しくエミュレータを作成してください。
新規のエミュレータ作成はAVD Manager画面の一番左下隅にあるCreate Virtual Device...
というボタンから簡単に作り直せます。同じエミュレータを作りたければ削除する前にメモを取っておくのをオススメします。
※2が実行したいアプリのプロジェクトになっていない場合
まず、エミュレータを開発者モードに設定します。
すでに開発者モードになっている場合は必要ないです。
エミュレータの方でSettings->System->Advanced->About emulated device->Build number
で、Build numberを7回タップすると開発者モードになります。
では、もう一度System
に戻ってみてください。Developer options
が追加されているはずです。これが開発者モードになっている証です。
次に、Developer options
をタップしてSelect debug app
をタップし、あなたが実行したいアプリを選択して下さい。選択されていても、もう一度選択してください。
これでもう一度アプリを実行してみましょう。大概上手くいきます。
#キャッシュを消す
何度も実行を繰り返したり、デバッグばかりして久々に通常の実行をした時などに残っているキャッシュが悪さをするときがあります。
Build->Clean Project
でキャッシュをクリーンできます。キャッシュをクリーンしてからもう一度ビルド/デバッグを実行しましょう。大概上手くいきます。
※注意事項※
ちなみにですが、アプリをビルドしないと生成されない情報とかもあり、そういう情報はキャッシュをクリーンしてしまうと一緒に削除されるため、クリーン後に急にコンパイルエラーが生じることもあります。しかし、問題なくビルドできますので、ビルドしてください。ビルド時に再度情報が生成されてコンパイルが通るようになります。
#buildするとSigningReportが下に表示される時
証明書作成をエミュレータ上でやっている状態で、アプリをエミュレータで起動している状態ではありません。以下の画像のapp
を選択して、再びbuildしてみてください。
大概上手くいきます。
#BPを全部消す
ずっとデバッグしているとブレークポイント(BP)が消えずに残ってしまい、私達からはちゃんとした位置にBPが貼られているように見えるけれどAndroidStudioの裏側では違う行にBPが貼られてしまっている...という怪奇現象もたまに起こりえます。そういう時はBPを全てクリアにしてデバッガを起動しましょう。
Run -> View BreakPoints -> BPを「−」ボタンで全部消す
この流れでBPを全て消せます。
この状態でアプリをデバッグしてみましょう。大概上手くいきます。
#gradle書いてるのに、gradleの内容が読み込まれてないのかも
例えば、firebaseとかgoogle cloudとかimplementationをgradleに書いていますが、もしかしたらそれが読み込まれていないというか、なんかしらの不具合で整合性が取れてない可能性があります。そういう時は右端のGradle->untitled->build->buildでビルドしてみて下さい。上手くいくかもしれません...!!
#認証系の画面に何故かいかない/思う通りに実行されない
認証系の画面(ログインや登録系)はエミュレータのStorageに情報が残っているとそれが邪魔して期待通りの実行がされない場合があります。
エミュレータのSettings->Apps¬ifications->実行したいアプリを選択->Storage->CLEAR STORAGE
でストレージを削除します。
この方法で実行してうまくいかない場合はFirebaseなどのデータベースに情報が残っていてそちらが悪さをしている場合も考えられますので、そっちも削除してから実行してみましょう。
大概上手くいきます。