Android

java.lang.IllegalArgumentException: Field ‘(フィールド名)’: type mismatch. Was (型), expected [(型)]

当エラーがでる原因

 

「java.lang.IllegalArgumentException: Field ‘plus’: type mismatch. Was BOOLEAN, expected [INTEGER]」 なるエラーがでました。以下のソースコードが問題でした。

templates = mRealm_template.where(Template.class)
           .equalTo("plus", 1).findAll().sort("display");

上記のソースコードはRealmでTemplateテーブルのplusフィールド、を「1」で検索しようとしているのですが、実はplusフィールドはBOOLEAN型なので、trueもしくはfalseしか使えないのです。 それを踏まえてエラーメッセージをよく見てみます。 「「java.lang.IllegalArgumentException: Field ‘plus’: type mismatch. Was BOOLEAN, expected [INTEGER]」」 これをなんとなく英訳すると 「java.lang.IllegalArgumentException:フィールド ‘plus’:型が一致しません。 BOOLEANだった? INTEGERになってる?」 (後半かなり適当な英訳w) なので正解は

となります。 「java.lang.IllegalArgumentException: Field ‘(フィールド名)’: type mismatch. Was (型), expected [(型)]」「Realmで検索しようとしている値がテーブルの型と異なる」場合に発生します。 AndoridでRealmを使う際は良く出てくるエラーだと思うので、覚えておきましょう。  

 

広告




関連記事