0

プロジェクトで Android ライブラリを使用しようとしていますが、最小 SDK バージョンとターゲット SDK バージョンに問題があります。私が話しているライブラリは、この ActionBarです。readme には、「このプロジェクトは、Android 1.6 および 3.0 までの再利用可能なアクション バー コンポーネントを提供することを目的としています」と記載されています。

アプリケーションのターゲットを 1.6 にしたいので (より高い API が必要になった場合は、必要に応じて変更します)、ビルド ターゲットを API レベル 4 (1.6) として ActionBar 用の Eclipse プロジェクトを作成しました。ライブラリminSdkVersionが 4 に設定されている (およびtargetSdkVersion10 に設定されている) にもかかわらず、プロジェクトはコンパイルされません。API レベル 10 (2.3.3) に属していると思われる正確なエラーが 3 つあります。そのうちの少なくとも 1 つはBuild.VERSION_CODES.GINGERBREAD、API レベル 4 には存在しない を使用しようとしていることが確実にわかっています。

ライブラリが「Android 1.6および最大3.0」をサポートし、1.6を念頭に置いてコンパイルさえしないのはなぜですか?

API レベルを 10 に設定して、何が起こるか見てみましょう。エラーはなくなり、今はこのような警告が表示されます。私はそれで暮らすことができます、それは大したことではありません (しかし、Eclipse からそれを削除する方法があれば、私に知らせてください)。

次に、1.6 を対象とするプロジェクトを作成し、ライブラリをプロジェクトに参照しましたが、上記と同じエラーがここにも当てはまるため、コンパイル/実行できません。

どうすればこれを回避できますか? ライブラリが"Android 1.6 and up to 3.0" をサポートしていると思われる場合、Android 1.6をターゲットとするプロジェクトでどのように使用できますか?

4

2 に答える 2

1

私はあなたが話しているライブラリに精通していませんが、ビルド/コンパイルターゲットの設定と最小SDKバージョンの違いを完全には理解していないと思います。プロジェクトのプロパティをv10およびtargetSdkに対してビルドするように設定し、次に最小値を4に設定するのは完全に正常です。ライブラリが適切に作成されていると仮定すると、古いバージョンとの互換性が維持されます。これは、古いバージョンに存在しないAPIにアクセスする前に、実行されているAndroidのバージョンを確認することによって行われます。ただし、プロジェクトのプロパティが10に設定されていない場合、より「最新の」バージョンのAndroidで実行されている場合はどうすればよいかわかりません。

minSdkとtargetSdkの設定に関する関連する説明は、ここにある他の回答で確認できます。

于 2011-09-19T21:35:51.033 に答える
-1

Build.VERSION_CODES.GINGERBREAD を Build.VERSION_CODES.DONUT に変更してみてください。1.6 をターゲットにしている場合に Build.VERSION_CODES.GINGERBREAD チェックが必要な理由がわからない

于 2011-09-19T20:59:27.683 に答える