1

私のアプリケーションでは、すべての Android バージョン >= 8 (プッシュ通知が必要) をターゲットにしたいのですが、プロジェクトのセットアップに必要な API と依存関係の適切な組み合わせを理解するのに苦労しています。

このプロジェクトでは、ロケーション ベースのサービスに Google API が必要です。また、ActionBar のサポートに ActionBarSherlockを使用する必要があります/使用したいと考えています。

この設定は正しいですか?


AndroidManifest.xml:

(1)

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

<application
    android:theme="@style/Theme.Sherlock.Light" >
    ...

ライブラリ:

(2) 追加しましたandroid-support-v4.jar

プロジェクトのプロパティ:

(3) Google-APIs 16に設定

アクションバーシャーロック:

(4) ActionBar-FAQ のビデオに従って、ABS をライブラリ プロジェクトとしてセットアップし、そのプロジェクトのプローブで Android レベル 16 に設定しandroid-support-v4.jar、その lib フォルダーに追加しました。


基本的な質問であることは承知していますが、正しいセットアップを選択したかどうかはわかりません。(3) が正しいのか、全体的な API レベルを 8 に設定する必要があるのか​​ 、特に疑問に思っています。

更新 1 : のメカニズムの理解にも問題がありsupport.jarます。build-target を maximum に設定した場合、システムは高レベルの機能 (フラグメントなど) が下位の API (8 など) で動作することをどのように確認しますか? これは自動的に行われますか? それとも、サポート パッケージに対して手動でコーディングする必要がありますか? 更新 2に関してsupport.jarは、使用している機能を知る必要があり、support.jar に対してコーディングする必要があります。高度すぎる機能を使用して失敗すると、下位の API レベルで ClassCastException がスローされます...?

どんな助けでも感謝します。また、私は初心者なので、背景情報を含む回答は高く評価されます:)

ありがとう!

4

3 に答える 3

1

設定は正しいです。バージョン8(3)に設定すると、コンパイルできなくなります。ActionBarSherlockには少なくともAPIレベル14が必要です。

ただし、このように設定すると、使用するすべてのAndroidAPIはAPI<=レベル8である必要があります。つまり、APIレベル8に含まれていない機能は使用できません。そうしないと、アプリケーションがクラッシュします。 ClassNotFoundExceptionまたはMethodNotFound例外。

フラグメントについては、常にサポートライブラリフラグメントを選択する必要があります。つまり、android.app.Fragmentではなくandroid.support.v4.app.Fragmentをインポートする必要があります。

アップデート2の場合:

はい、実行時にスローされます。アプリが機能しなくなります。ただし、現在の電話APIレベルを確認することで、この落とし穴を回避できることは間違いありません。

例えば

if(android.os.Build.VERSION.SDK_INT >= 11) {
    // API that supported in API >= 11
}
else {
    // API that supported in API < 11
}

私は実際にこれを自分で確認しました。バージョン8エミュレーターの実行やAPIバージョン>=8コードでのコードの実行など、エミュレーターを使用して検証することもできます。

于 2012-07-29T15:52:36.303 に答える
1

それは正しいように見えます。ActionBarSherlock.com のビデオで説明されているように、ステップ #3 を、ActionBarSherlock のバージョンで利用可能な最高の「プロジェクト ビルド ターゲット」に設定する必要があります。したがって、ABS 4.1.0 を使用している場合は、プラットフォーム 4.1、API 16 が必要です。

ABS プロジェクトもライブラリとしてセットアップしましたか? プロジェクトの依存関係には、次の両方が必要です。

  • < Your-ABS-Library >.jar
  • android-support-v4.jar
于 2012-07-29T15:48:31.640 に答える
0

Build SDK を API 15 に設定することをお勧めします。Sherlock ActionBar でもそれを使用していますが、すべて正常に動作します。

于 2012-07-29T15:49:36.423 に答える