「シンボルを見つけられません」エラーが出た時の対処方法【Kotlin】

目次

  1. 背景
  2. 「エラー: シンボルを見つけられません」の意味
  3. 対応方法
  4. まとめ
  5. 関連記事
  6. PR

背景

こんにちは。 かりんとうマニア(@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開発を学ぶならこんな本もあります。