java.lang.NoClassDefFoundError: Could not initialize classの原因究明
以下のエラーが発生した。
java.lang.NoClassDefFoundError: Could not initialize class ....
エラー内容としては「クラスが見つからない」と言っているのだが、しかしその説明としては「クラスの初期化ができなかった」となっている。当然だが、クラスは存在し、初期化ができないだけのようだ。
このエラーが厄介なのは、共に表示されるスタックトレースには問題の根源が全く示されていないこと。このスタックトレースを見ても何が悪いのかさっぱりわからない。
唯一解決した方法としては、このクラスAのすべてのstaticフィールドの初期化の例外を捕まえることだけだった。例えば、以下になっているとすると、
class A {
static Something SOMETHING = ....
}
以下に変更する。
class A {
static Something SOMETHING;
static {
try {
SOMETHING = ....
} catch (Throwable th) {
th.printStackTrace();
}
}
}
これでとりあえずは原因がわかった。
ディスカッション
コメント一覧
まだ、コメントがありません