2019年3月24日日曜日

Android Room With a View - Recyclerview not call onCreateViewHolder

Stack Overflowにあるように、第一の原因としては、
getItemCount()
が正しい件数を返しているかどうか。

もう一点のポイントとして、activity_main.xmlをデザイナで
見たときにプレビューが 見れているかどうか。
レイアウト関連の設定で、結果的にサイズが0に
なったりする。
そうするとプレビューでも見えない状態になり、
プレビューで見れてないと描画処理もされないので
onCreateViewHolderも呼ばれない。

Google Codelabsの「Android Room with a View」を
参考に作ってる場合は、layout/content_main.xmlと
layout/activity_main.xml あたりの設定を見直した
方が良い。


2019年3月21日木曜日

Android Studio Kotlinで"Room cannot verify the data integrity."エラー発生

Android でRoomを使って開発中に以下のエラーが発生した場合の対処法。
Room cannot verify the data integrity. Looks like you've changed schema 
but forgot to update the version number.
You can simply fix this by increasing the version number.
デプロイ先のAVDやデバッグ実機上のDB定義と
新しいDB定義が食い違ってますよ、というエラー。

開発中はしょっちゅうDB定義を変えながら開発するので、
このエラーが出た場合は、デバッグ先のDBを初期化すれば良い。
※あくまでもDBの内容を消去しても良いと判断した場合。
 開発中といえども消したくない場合は、ちゃんと
 DBマイグレーションしましょう。

以下は、DB初期化方法。
AVDや実機でアプリ情報を開き、
ストレージ → ストレージを消去
すれば解消する。

または、実機で開発している場合は、Android Studioの
Device File Explorerからも削除可能。
/data/data/開発中のアプリケーション/database/配下