お使いのブラウザは、バージョンが古すぎます。

このサイトは、Internet Explore8・Internet Explore9には対応しておりません。
恐れ入りますが、お使いのブラウザをバージョンアップしていただきますよう宜しくお願いいたします。

【Eclipse】targetSdkVersionとビルド・ターゲットの違い

こんにちは、pencoです。
 
先日(いや、かなり前ですが…)appcompat_v7\res\values-v21\themes_base.xml というエラーの対応をした時に調べたことをまとめておこうと思います。
 
 

minSdkVersion とは?

指定したバージョン以上のシステムでならアプリが動作することを示す値です。ここで指定した値未満のシステムにはアプリはインストールできません。
 

targetSdkVersion とは?

指定したバージョンでアプリが動作することを保障する宣言です。ここにはアプリが動くことをテスト済みの最新のバージョンを指定します。この値はデフォルトのテーマやメニューキーなどに影響します。
例えば

<uses-sdk android:minSdkVersion="9" />

のように、minSdkVersion のみを指定した場合は、Android4.0の端末で実行しても(デフォルトでは)ActionBarは表示されません。
しかし、

<uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="14" />

のように、targetSdkVersion をAndroid4.0 に指定することでActionBar が表示されるようになります。
 

ビルド・ターゲットとは?

ソースコードで使用できるクラスやメソッドが決まる値です。指定したAPIレベルのライブラリを使用してビルドした、ということです。
project.properties の target=android-XX の値がそれになります。
プロジェクトを右クリック -> プロパティ -> Android -> プロジェクト・ビルド・ターゲット から変更できます。
 
ここにはtargetSdkVersion よりも大きな値も指定できます。ビルド・ターゲットの値が大きいと、「以前は使えたが、API level XX から非推奨になったメソッド」などが出てきます。使用しているクラスやメソッドに取り消し線が表示された場合は、

if(Build.VERSION.SDK_INT < 14){
    //APIレベル14以下の場合の処理(非推奨になったメソッド)			
}else{
    //APIレベル14以上の場合の処理(代替メソッド)
}

のようにして、APIレベルで処理を分岐するようにします。
公式のリファレンスを見ると、どのAPIレベルから非推奨になったのか、代わりにどのメソッドを使えばよいか、が書いてありますので、それに従い修正すればOKです。
 
 
今回はここまで。
ではでは。

コメントをどうぞ

メールアドレスは公開されません。* が付いている欄は必須項目です。


お気軽にお問い合わせください。

日本VTR実験室では、お仕事のご依頼、ブログ・コラムのご感想などを受け付けております。
アプリ開発・コンテンツ制作でお困りでしたら、お気軽にご相談ください。
ご連絡お待ちしております。

お問い合わせはこちらから

03-3541-1230

info@nvtrlab.jp

電話受付対応時間:平日AM9:30〜PM6:00