2013-02-18 20 views
11

簡単な質問:Eclipseでは、 "New Android project"コマンドは、常に最新のsdkを使用しようとします。常に良いアイデアですか?最後のtargetSdkVersionを常に使用する必要がありますか?

UPDATE:

私が説明しよう。最後のAndroid(ジェリービーン、4.2.xでは)にターゲットが、それはフローズンヨーグルト(2.2)上でも実行することができ、そう

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

:今Eclipseで、「新プロジェクトが」でマニフェストを生成します。それは私にとっては大丈夫です。私はこの選択に何が間違っていますか?無(2.2 targetSdkVersion =「17」とビルドターゲット私のアプリは、古いデバイス上で実行されます確認するために:minSdkVersionが=「8」+アンドロイド:

UPDATE

は、それは私がアンドロイドを設定しOKですNoSuchMethodError例外)?

+0

ターゲットにするデバイスによって異なります – vodich

+0

私は自分の質問を編集しました –

+1

"target sdk version"の意味は次のとおりです:http://developer.android.com/guide/topics/manifest/uses-sdk -element.html これは、このsdkバージョンでアプリをテストし、正常に動作することを確認したことになります。したがって、デバイスは古いSDHをエミュレートする必要はありません。 – tuxSlayer

答えて

10

私はこの選択を非常に間違っていますか?

この選択には何も問題はありません。そのため、ビルドツールがデフォルトになっています。

targetSdkVersionを設定すると、古いtargetSdkVersionでは得られない可能性のある特定の動作が選択されます。 the documentation for Build.VERSION_CODESを読むことで、何を得ることができるか分かります。

+0

以前、targetSdkは8でしたが、今では(17で)NetworkOnMainThreadException例外が発生します。ターゲットを変更すると、それらの「悪い」行を発見するのに役立ちました。 –

+0

アンドロイド:minSdkVersion = "8" アンドロイド:targetSdkVersion = "17"を設定し、ビルドターゲットを2.2に設定してアプリを古いデバイスで実行できることを確認してもよろしいですか? –

+1

@ Seraphim:私はこのアプローチをお勧めしません。Lintは 'minSdkVersion'を超えて使用しているクラスとメソッドがあるときはそれを教えてくれます。 Android 3.0以降を実行するAndroid搭載端末の約40%で、Android 2.2以降の機能を条件付きで使用するようになります(Build.VERSION.SDK_INTなど)。そのような場合は、ビルドターゲットを、使用しようとしているすべてのクラスとメソッドを持つAndroidのバージョンに設定する必要があります。 – CommonsWare

4

古いバージョンのアプリケーションを開発したい場合は、お勧めできません。 most used versionの内容をいつでも確認し、そのバージョンに対してアプリケーションを作成することができます。場合によっては、一部の機能が古いバージョンではまだ実装されていないため、最新のバージョンを使用する必要があります。

+0

私は自分の質問を編集しました。 –

2

あなたはここでそれについての詳細を読むことができます:http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

しかし、あなたはほとんど常に最新のように、目標を持っている必要があり、その後、あなたがしたい最古の最小値を変更します。

+0

私の更新を読んでください:設定しても大丈夫ですか? –

関連する問題