
目次
背景
こんにちは。 かりんとうマニア(@karintozuki)です。
今回はKotlinでAndroidアプリの開発時に
「エラー: シンボルを見つけられません」というエラーが出た際の対処方法を紹介します。
「エラー: シンボルを見つけられません」の意味
私の環境では、
Data Bindingを使用しているときにこのエラーが発生しました。

Data Bindingを設定すると、ビルドの際に自動的にDataBinding用のクラスが生成されます。
この自動生成されるクラスが「〇〇BindingImple」という名前のクラスなのですが、
そのクラスが自動生成できなかった時に、
「エラー: シンボルを見つけられません」
のエラーが発生するようです。
対応方法
実はビルドアウトプットをよく見ると、
シンボルを…のエラー以外にもう一つエラーが出ています。

こちらが本当の原因でした。Could not find accessor com.example.tweetanalytics.ui.main.MainViewModel.tweet and java.lang.CharSequence has 4 abstract methods, so is not resolved as a listener

layoutのXMLでViewModel内の変数を参照しているのですが、
ViewModelからその変数を削除してしまったために、エラーが発生していたようです。
画像内のmainViewModel.tweet
という変数ですね。

なので、この記述を消してあげることでビルドが通るようになりました。
ちなみにエラーが解消されると、
プロジェクト内のjava(generated)
フォルダ内に
「〇〇BindingImple」クラスが作成されます。

まとめ
「エラー: シンボルを見つけられません」という
エラーが発生した時は、
- 自動生成されるクラスが生成されていない
- 対象のlayoutのエラーが別に出ている可能性がある
ということを覚えておくといいかもしれません。
それでは今日はこの辺で。
関連記事
こちらの記事もおすすめ。
アプリ未経験エンジニアが独学で個人開発Androidアプリを公開するまでにやったこと
PR
Android開発を学ぶならこんな本もあります。