2

私は j2me アプリケーションを開発しています - エミュレーターとほとんどの電話では問題なく動作しますが、2 つの Nokia デバイス (どちらも ARM CPU で h/w Java アクセラレーションを使用) では、midlet の起動中に次のエラーが発生します。

java/lang/NoSuchMethodError: そのようなメソッドはありません a.()I.

難読化ツールを無効にしても役に立ちません。同じ難読化または難読化されていない jar は、エミュレーターと他の携帯電話の両方で正常に動作します。この問題をデバッグする方法と、その理由がわかりません。何か案は?

問題がある場合はj2me Polishフレームワークを使用していますが、失敗は私のクラスの1つにあります(難読化ツールを無効にすると表示されます)。

4

2 に答える 2

1

NoSuchMethodErrorは、存在しないメソッドを呼び出そうとしていることを意味します(つまり、そのメソッドを含むはずのクラスが正常にロードされましたが、そのメソッド定義がありません)。これは通常、あるライブラリに対してコンパイルし、別のバージョンのライブラリで実行しているときに発生します。コードからメソッドを削除し、このメソッドを使用するクラスの再コンパイルに失敗した場合にも、これが発生する可能性があります。

于 2010-08-18T21:28:58.763 に答える
0

他の誰かが同様の状況に遭遇した場合に備えて、私の問題の原因を @Mike の回答に追加するには:

別のプロジェクトに依存する Eclipse プロジェクトがあります。どちらのプロジェクトも共通のライブラリに依存しており、うっかり一方のプロジェクトのライブラリ バージョンを更新してしまいましたが、もう一方のプロジェクトのバージョンは更新していません。

于 2011-06-19T15:03:39.890 に答える