「シンボルを見つけられません」エラーが出た時の対処方法【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

あなたの会社はあなたの技術を評価してくれていますか?
技術力を高めようと頑張っているのに、
技術が評価されないような会社にいたらそれは良い環境なのでしょうか?
エンジニアとして技術を高めたいのなら環境を選ぶことも大事です。

レバテックキャリア
エンジニアとして働いていて実務経験があるなら、
求人数の充実具合からレバテックキャリアがおすすめです。
IT転職ではデファクト・スタンダードですね。
▼レバテック キャリア 登録はこちら▼


Tech Clips
Tech Clipsは年収500万以上&自社サービスを持った会社に特化した求人サイトです。
首都圏限定になってはしまいますが、
収入を増やしたい、自社サービスを持った企業への転職をしたい人におすすめです。

▼Tech Clips 登録はこちら▼