2011-03-01 15 views
0

タブを使用するアプリケーションを開発しています。Android 1.5(APIレベル3)と互換性があります。Android APIレベル3で描画可能なリソースを解決できません。

Tab icons compatibility between API level 3 and >=5を参照してください。基本的に私は、Googleが推奨するように2セットのタブアイコンを持っています。

  • ターゲット> = 5のタブアイコンは、drawable-(h/m/l)dpi-v5にあります。
  • ターゲットのタブアイコン< 5および他のすべての描画可能なリソースは、drawable-(h/m/l)dpiにあります。
  • 私のAndroidManifest.xmlはandroid:minSdkVersion="3"android:targetSdkVersion="5"です。私はレベルに
  • すべての私のコードは

> =レベル5すべてが正常に動作するデバイス/エミュレータで実行されている互換性レベル3で7 SDKを使用してコンパイルしてい
  • は、タブのアイコンが使用して[OK]が表示されます - v5リソース。デバイスレベル4でもすべて正常に動作し、タブアイコンもOKです。

    ただし、デバイスレベル3を使用すると、描画可能なリソースを解決しようとするとアプリがクラッシュします。スタックは次のようになります。

    Caused by: java.io.FileNotFoundException: res/drawable/splash_background.xml 
         at android.content.res.AssetManager.openXmlAssetNative(Native Method) 
         at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:471) 
         at android.content.res.Resources.loadXmlResourceParser(Resources.java:1825) 
    

    res/drawable/splash_background.xmlが存在することに注意してください。これは一例です。描画可能なリソースを取得しようとしたときに同じエラーがスローされます。

    これに関する手がかりは?

  • +0

    splash_background.xmlは他のドロワーブルを参照していますか?おそらく-v5リソースにのみ存在するものでしょうか? –

    答えて

    4

    API 4で-ldpi、-hdpi、および-mdpiの修飾子が追加されているため、機能しません。

    Providing screen resource compatibility for Android 1.5を参照してください。

    +0

    うわー、ありがとう、私は(h/m/l)dpiがAPI 4で導入されたことに気づいていなかったので、基本的にdrawable-mdpiからdrawableまですべてを移動する必要があります。 – aromero

    +0

    @aromeroあなたは大歓迎です。私は、「古い」本を読んだからだけ分かっていたと思う。これらのAPIは急速に進化しています。 – bigstones

    +0

    この問題を解決するのに3時間かかりました。私はあなたの答えをはるかに早く見たいと思っています。ありがとう、ビッグ! –