⚠️

Jetpack Composeで作ったアプリのプレビューも、ログも表示されないとき

2023/02/28に公開

TL;DR

実行ボタンの左あたりに、実行対象を選ぶ場所があるので、Appを選択してください。
ここのセレクトボックスに何が指定されているかによって、何を実行するかが異なります。
どうやらComposeを使っていると、Composeで作った画面を試しに実行することができる機能があって、それをこのセレクトボックスで使うみたい...?

実行対象のセレクトボックスを引きで見た様子
実行対象のセレクトボックス
Appを選択する

対象

  • Jetpack Composeでアプリを作っているとき、Logを出力させても何もでない人
  • Jetpack Composeでアプリを作っているとき、期待した画面がでない人
  • Jetpack Composeでアプリを作っているとき、何も表示されない/期待したアクティビティで起動しない人

きっかけ(どうでもいい)

Androidでアプリを作ろうと思って、Jetpack Composeをいじり始めて見ていました。
「なんだかMVVMという設計方針があるらしいぞ...👀」


ということで、自分で良い感じにファイル構造を作って、「良い感じにアプリを作って良い感じにリリースしてやるんだ...!」ととりあえず開発途中で実行してみました。

「なんてことだ。」

そこにあったのは真っ白で何もない画面でした。とりあえずログを吐かせて見ようと思って、Log.d("aaaa", "adajsifojasoijfoasf")してみました。
ログには何もでてこないし、私の書いた画面は表示されていません。
これですごい長いこと悩んでいました。

そして気づいたのが、ランチャから起動させれば起動する!
Android Studioの"Run"タブを見てみると、

adb shell am start -n "<パッケージ名>/androidx.compose.ui.tooling.PreviewActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER --es composable <Composableのあるktファイルなどの指定>

ん...?!作った覚えのないアクティビティが実行されている...!
そうして、Android Studio側で間違って実行する対象を設定していたことに気づいたのでした。

おしまい

GitHubで編集を提案

Discussion