読者です 読者をやめる 読者になる 読者になる

facebook-android-sdk を JDK1.7 でもビルドしたい

(Oracle|Open) JDK1.7 を使って facebook-android-sdk を ant でビルドすると、以下のようなエラーログと共にビルドが失敗します。

-compile:
    [javac] Compiling 75 source files to facebook-android-sdk/facebook/bin/classes
    [javac] facebook-android-sdk/facebook/src/com/facebook/model/GraphObject.java:198: 警告:[rawtypes] raw型が見つかりました: Class
    [javac]             Class<?>[] interfaces = new Class[] { graphObjectClass };
    [javac]                                         ^
    [javac]   汎用クラスClass<T>の型引数がありません
    [javac]   Tが型変数の場合:
    [javac]     クラス Classで宣言されているT extends Object
    [javac] facebook-android-sdk/facebook/src/com/facebook/model/GraphObject.java:208: 警告:[rawtypes] raw型が見つかりました: Class
    [javac]             Class<?>[] interfaces = new Class[]{Map.class};
    [javac]                                         ^
    [javac]   汎用クラスClass<T>の型引数がありません
    [javac]   Tが型変数の場合:
    [javac]     クラス Classで宣言されているT extends Object
    [javac] エラー: 警告が見つかり-Werrorが指定されました
    [javac] エラー1個
    [javac] 警告2個

良くみると、ただ警告がでているだけなので無視してビルドすればよいことが分かります。 rawtypes という警告を無視すればよいので javac に以下のようなパラメータを渡すとビルド出来るようになります。

javac ... -Xlint:-rawtypes

また、 ant を使ってビルドする場合には以下のプロパティを (project|local).properties に定義すれば同様の効果が得られます。

java.compilerargs="-Xlint:-rawtypes"