【自分用メモ】何でか分からないけどアプリが実行できない時にまずすべき事まとめ


本記事について

「あれれ?うまくアプリが実行されないぞ?」
 ---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&notifications->実行したいアプリを選択->Storage->CLEAR STORAGEでストレージを削除します。

この方法で実行してうまくいかない場合はFirebaseなどのデータベースに情報が残っていてそちらが悪さをしている場合も考えられますので、そっちも削除してから実行してみましょう。

大概上手くいきます。