LoginSignup
3
2

More than 5 years have passed since last update.

作成したEclipseプラグインをデバッグすると、メソッドが存在するのにNoSuchMethodErrorが出る場合

Posted at

Eclipseのプラグイン開発における小ネタ。

何回かデバッグしていたらNoSuchMethodErrorが出て、実行できなくなった

プラグイン実行時に叩くActionクラスのIFを変更したり、色々試行錯誤していたら、何度目かのデバッグで
IViewPartを実装したクラス中に存在するメソッドの実行時にNoSuchMethodErrorが出るようになった。
Actionクラス、Viewクラス、どちらのメソッド名を変更してみても、状況は変わらなかった。

対策

以下に存在した「.snap」ファイルを削除することで、正常に動作させることができた。
※runtime-Eclipseアプリケーションは、デバッグ中に起動するEclipseのworkspace。

runtime-Eclipseアプリケーション\.metadata\.plugins\org.eclipse.core.resources
runtime-Eclipseアプリケーション\.metadata\.plugins\org.eclipse.core.resources\.projects
runtime-Eclipseアプリケーション\.metadata\.plugins\org.eclipse.core.resources\.projects\<各サブディレクトリ>

サブディレクトリに存在する「.snap」のファイル名は、「.markers.snap」や「.syncinfo.snap」になっている。

全て削除後、再度デバッグを実行するとNoSuchMethodErrorが発生しなくなった。

参考

ちなみに

Eclipseのプラグインは、フォルダに配置しても認識されないことがある。
「エラー・ログ」ビューを表示することで原因がわかることもあるが、エラーすら出ていない場合もある。
その場合、(もしかしたらどうにかすることができるのかもしれないが、)Eclipseを新しくセットアップして対応するしかなくなるときがあるので、大きめのプラグイン導入前は、Eclipseをworkspaceごとコピーして、バックアップを作成しておくと、万が一の事態に対処できるのでお奨め。

だが、もしかしたらこのプラグインが認識されない問題も「.snap」を削除することで対応できる場合があるのかもしれない。プラグインがうまく認識されなくなった場合は、「.snap」ファイルができていないか確認してみるのは、対処としてありだと思う。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2