web-dev-qa-db-ja.com

コンパイル中の「InnerClasses属性を無視する」警告出力とは何ですか?

Androidが初めてで、Ical4j解析用ライブラリICS(Outlookカレンダー)ファイル。

ただし、Eclipseでアプリケーションをビルドすると、コンソールに次の警告が何度も表示されます。

[2010-07-22 15:58:31-Googleカレンダーのアップロード]警告:EnclosingMethod属性が関連付けられていない匿名内部クラスのInnerClasses属性を無視します。 (おそらく、このクラスは壊れたコンパイラーによって作成されました。)

これにはどのような意味がありますか?どうすれば解決できますか?

41
RMK

これは、jarファイルを含める場合に非常に一般的です。警告は通常APIを使用しているだけなら心配することではありませんが、Eclipse内のソースからical4jをコンパイルすることでそれらを取り除くことができるはずです(新しいjarをビルドするか、単にソースを独自のソースフォルダ)。実際に問題が発生しない限り、これは心配する必要はありません。

29
Nick

アプリとライブラリがすべて新しいJDK(7+)で構築されていて、まだこれを受け取っている場合は、Proguardに囲んでいるメソッド属性を保持するよう指示することでこの問題を修正できます。 Proguardルールに次を追加するだけです。

-keepattributes EnclosingMethod

31
William

Ksoap2ライブラリを使用するときに同じエラーが発生しました。

それを取り除くために、 DJ Java Decompiler をダウンロードして.jarファイルを.Javaファイルに逆コンパイルしました。その後、.Javaファイルを.jarファイルにコンパイルしました。 Eclipseを使用します。

4
Dominik Mohr

ビルドツールとサポートライブラリを同じバージョンに更新する

1
kreker