Kanade Labo

かなで研究所

Android Studio カメラアプリ作成その10(カメラ表示5)

こんにちは かなで です。

プレビューするだけでもう第5回となりますね。

ここからエミュレータを使っていきます。

(もしエミュレータ準備できてなかったら以下ページで準備してますのでよろしくお願いします。

前回までに準備したものを実行してみます!

これなんですよね…。Cam keeps stopping Close app

ここからなかなか進まなかったんです…

これを解決していきたいと思います。

まずは何度も出てきている問題ビュー

ですが、エミュレータ動作で出てくる問題には使えないので、

Logcatを押します。

こんな感じの画面になります。

ここで再度アプリを実行してみます。

するとこのようになんかたくさんの表示が出るようになりました。

これが実行しているアプリの細かいログのようです。

この赤枠部分で「net.kanalabo.cam」を選びます。これ以外が選ばれてると他の不要なログも流れてしまうようです。
ちなみにデフォルトで「net.kanalbo.cam」になるみたいです

何度も実行しながら、書いてある文言を片っ端から確認していってたんですが、どう読めばいいかわからず…

結果論になりますが以下の2つで解決となりました。

1つ目

Caused by: java.lang.IllegalStateException: CameraX is not configured properly. The most likely cause is you did not include a default implementation in your build such as 'camera-camera2'.

という文言から「camera2」をサイトで検索

ここが思い出されました。

MainActivity.kt

importが並んでいる一番最後に「import androidx.camera.camera2.Camera2Config」を追加します。

「camera2」が赤字になるので、クイックフィックスで「Add depondency on androidx.camera-camera2 and import」をクリックします。

ほら!同じ言葉があるでしょ!(だから何

赤字は消えました。


再度エミュレータでアプリを実行してみましょう!

まぁ待ったく同じ結果になりました。

Logcatでは

このように表示されまして、キーとなる記述は

java.lang.NullPointerException: findViewById(R.id.viewFinder) must not be null

の部分でした。

適当解釈すると、find(探す ということで、R.id.viewFinderを探せなかったということらしいです。

そこで2つ目

ちょっとこちらをご覧ください。

上のコメントアウトをしてたのは、最初にあったものです。

ここで、上下を見比べてみてください…。

最初はあったのに、今回作成分にないものがありませんか?

しばし休憩…

はい。そうです!。

こちらです!。

これは、activity_mainというレイアウトをセットする。みたいなものと言えます。

そもそもずっとactivity_main.xmlを操作してたのに、MainActivity.ktから開く設定がなかったんですね。

カメラプレビューの画面設定は「activity_main.xml」にしてあげてたので、これをセットする必要があると。

そういうことらしいです。

そんなわけでセットしたものがこちら。

いよいよ進展します(笑

実行結果がこちら

少なくともエラーにならず、「開く」ことには成功しました(笑

次回!アプリ権限!

最後までお読みいただきありがとうございました。
気になることがあったら、コメント頂けると嬉しいです。
自主学習も兼ねて記事にするかもしれません。

-AndroidStudio