パソコン情報

【NO.3】Androidアプリ開発の道のり(Ab testView設置で意味不明のエラー)

Android Studioの設定も終わりテキストを見ながら先に進めようとしていますが、画面構成の意味が理解できずに頻繁に迷子になります。

また、よくわからないエラーが頻繁に出ており、そのエラーを回避するために触って回復させようとしていますが、通常のソフトと違って触れば触るほど迷子になり、深みにハマっていくような状況になっています。

なんだか、精神的な負担も出てきており苦痛になってきたので止めようかとも思いましたが、どうしてもスマホでやりたいこともあるので、苦痛になったらさっと止めるようにして、少しづつやろうと考えています。

まだまだ、しょうもないアプリを作成するにも時間がかかりそうです。

本当は、もっと使い勝手の良いアプリ開発環境が欲しいものですね。

さて、今日はちょっとだけ進めたかもしれない事を備忘録にしておこうと思います。

前回まででは、迷子になってしまいデザインモードに戻れなく、戻れたのはいいが、ガイドが出ない状況にモヤモヤしていました。

デザインモードに戻るには、

左画面ツリーのJavaのプログラムなどを開けるとデザインボタンなども消えてレイアウト画面が無くなる。

もう、この状態でよくわからなくなりプロジェクトを閉じたりしていました。

戻る方法としては、左ツリー画面のres\layout\activity_main.xmlというファイルをクリックすればレイアウト画面に戻ることができました。

そんなことも知らないのかよって思われてしまいますが、超初心者なのでお許しを。

ガイドが表示されない不具合に関しては、

参考書を見ると、テキストボックスを配置しようとすると、自動でガイドが表示されていましたが、私の環境では表示されませんでした。変なエラーも沢山出ていたのでUpdateみたいなリンクをクリックしておりましたが一向に改善しませんでした。

直った方法としては、いったんプロジェクトを閉じたら、JDK(Java Development Kit)のインストール画面が促されたので、そのままインストールしたら回復しました。

最初のインストールでやったような気がしましたが???

【追記】その前に、Render problemが出ており、その詳細を見ると

「Failed to load AppCompat ActionBar with unknown error.」となっていました。

この対処方法は、res/values/style.xmlファイルを下記のように編集。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

の部分を下記のように変更

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

変更後、保存して再起動したらガイドも表示されて回復した。
そしてAb testView(テキストボックスのようなもの)を画面に配置すると、またエラー

Missing constraints in ConstraintsLayout

本当に勘弁してほしいです。

ネットで検索したら回答がありました。

ConstraintLayoutとは、コンポーネント(TextViewとかの部品)にConstraint(直訳すると「制約」)をつけることで位置決めをするレイアウト。設定が不足していて位置決めをすることができないコンポーネントが存在すると、エラーが表示される。

レイアウトエディターのツールバーに、赤丸を付けたようなボタンをクリックしAb testViewを再設置すると、そのときの画面上の配置に合わせてConstraintを設定してくれて直った。その左隣の×印がついているボタンを押すと、逆に全てのConstraintが解除らしい。

ほっと一安心したら、またエラーっぽいメッセージ

Hardcoded Text

これも調べてみたら回答がありました。

黄色というのは、注意メッセージ。
エラーではなく、もっといい方法があるとか、コーディング誤りの可能性をお知らせするメッセージらしい。

このエラーは、文字列をハードコーディングしていますが、@stringをつかったほうがおすすめですよ。というメッセージ。

たとえば、
android:text1="本日は晴天なり"
とダイレクトに文字をいれるよりも、string.xmlにテキストと定義し、

android:text=@string/text1
とするほうが、コーディングの仕方としておすすめですよ、ということです。

"文字列"の定義は、同じ文字列をあちこちで使うこともありますし、一箇所にまとめて記述したほうが管理しやすいので、string.xmlにまとめて記述するようです。

赤丸で囲った「Fix」というボタンをクリックすると上記の設定を手動でやらなくてもできるようです。

resouece name ということろに、text1 といれてOKしたら完全に注意メッセージも消えました。

たったこれだけで時間がかかりますね。まだまだ先は長い。