2014年4月12日土曜日

[Android] マニフェストに表示される警告(黄色三角のエクスクラメーションマーク)

How to correct the warning in the Manifest
Android SDKは、だいぶ前のバージョンからかAndroid Lintによるプロジェクト内の静的チェックが充実しました。
アプリケーションを実行しなくても一部のバグを発見できる反面、中にはお節介すぎるチェックもあります。
その代表格はこれでしょう。

Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details.

マニフェスト(AndroidManifest.xml) の android:targetSdkVersion がAndroidの最新バージョンに設定されていない場合に表示される警告です。
この「Androidの最新バージョン」はSDKのことをのではなく、AndroidOSのAPIレベルのことを言っているようです。
このお節介な警告を表示させない方法について考えてみました。

このブログを書いている時点の環境は次の通りです。
・64bit版 Windows8
・32bit版 Eclipse3.7 (Windows XPモードで使用)
・Android-SDK r22.6.1
・Androidの最新のAPIレベルは19

解決方法1・targetSdkVersionに最新バージョンを設定する

マニフェストのtargetSdkVersionに最新のAPIレベルを設定すれば警告は消えます。

解決方法2・このLintだけ無効にする

上の解決方法は新しいAPIレベルが公開されるたびにEclipse内のすべてのAndroid用プロジェクトのマニフェストを設定し直す必要がありそうです。
別の方法として警告を表示しないように設定することもできます。
Eclipseのメニューから
ウィンドウ - 設定 - Android - Lint
を開き、Issues: に「OldTargetApi」と入力すれば目的の項目が絞り込めると思います。
右下のSeverityを Ignore に設定します。

スクリーンショットです。一部日本語化しています。

この警告は今のところ無視しても影響がないようです。
だたし、将来どのように仕様が変わるか分かりません。
新規にAndroidプロジェクトを作成したら、targetSdkVersion にはその時点で最新のAPIレベルを設定しておいた方がいいと思います。
同時に最新のAPIレベルのエミュレーターでの動作テストをすることもお勧めします。

関連ブログ
[Android] アナログ時計アプリをライブ壁紙に改造する
[Android] SurfaceViewのアナログ時計アプリ
[Android] アナログ時計のアプリを作ってみました
[Android] アナログ時計のアプリをC/C++で改良
[Android] ストップウォッチアプリを作ってみました
[Android] ストップウォッチアプリの表示をC言語でスムーズに改造する
[Android] 方位センサーを使ってコンパスアプリを作る
[Android] Javaのstaticクラスから非sataticメソッドを呼び出すには
[Android] OpenGLの簡易画像ビュアーにSDカード内の画像を表示する
[Windows8][Android] EclipseをXP互換モードで起動する理由(Can't bind to local 8600 for debugger)
[Android] Android-SDKでやってはいけないこと
[Android] Toastに画像やボタンを表示するには
[Android] ライブ壁紙の作り方
[Android] Activityに時計を表示する(Activityの非同期更新)
[Android] Webコンテンツを強制的に表示するには
[Android] Toastをcancelするには

以上、参考になれば幸いです。 以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿