【问题标题】:Android 2.2 SDK breaks compatibility with older phonesAndroid 2.2 SDK 打破了与旧手机的兼容性
【发布时间】:2010-05-27 18:31:07
【问题描述】:

我最近将我的应用更新为 SDK 版本 8 的构建目标,以便为我的用户包含 App2SD 功能。

但是,我收到了有关 SDK 3 (1.5) 上的设备在启动应用程序时出现问题的报告,并带有以下堆栈跟踪:

...
E/AndroidRuntime(10638): Caused by: android.content.res.Resources$NotFoundException: File      res/drawable/title_bar_shadow.9.png from drawable resource ID #0x7f020000
E/AndroidRuntime(10638): at android.content.res.Resources.loadDrawable(Resources.java:1641)
E/AndroidRuntime(10638): at android.content.res.TypedArray.getDrawable(TypedArray.java:548)
E/AndroidRuntime(10638): at android.view.View.<init>(View.java:1726)
E/AndroidRuntime(10638): at android.view.View.<init>(View.java:1675)
E/AndroidRuntime(10638): at android.view.ViewGroup.<init>(ViewGroup.java:271)
E/AndroidRuntime(10638): at android.widget.LinearLayout.<init>(LinearLayout.java:92)
E/AndroidRuntime(10638): ... 26 more
E/AndroidRuntime(10638): Caused by: java.io.FileNotFoundException: res/drawable/title_bar_shadow.9.png
E/AndroidRuntime(10638): at android.content.res.AssetManager.openNonAssetNative(Native Method)
E/AndroidRuntime(10638): at android.content.res.AssetManager.openNonAsset(AssetManager.java:392)
E/AndroidRuntime(10638): at android.content.res.Resources.loadDrawable(Resources.java:1634)
E/AndroidRuntime(10638): ... 31 more

如果我像以前一样将构建目标改回版本 4,这个问题就会消失,如果我从我的 XML 文件中删除任何图形资源,这个问题也会消失!

任何帮助都将不胜感激,因为我目前在市场上为许多用户提供了一个损坏的应用程序。

【问题讨论】:

标签: android android-2.2-froyo


【解决方案1】:

这可能与不同的图像密度以及 SDK 1.5 无法开箱即用的处理方式有关。看看herehere

【讨论】:

  • 你是对的,将我所有的中等密度资产从 drawable-mdpi 转移到 just drawable 让它在所有平台上都能正常工作。我还在 hdpi 中保留了一个高质量的版本。
  • 是的,我遇到了同样的问题,我将 mdpi 文件夹中的所有资源都移到了 drawable 文件夹中......现在工作正常 :) 谢谢
【解决方案2】:

您应该能够执行 minSdk=3 targetSdk=8 并针对它应该工作的 2.2 库进行构建。您不能使用任何不属于 1.5 api 的 sdk api。您还必须手动将应用安装到 1.5 模拟器以进行测试,但它应该可以工作。

【讨论】:

    猜你喜欢
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    相关资源
    最近更新 更多