【问题标题】:support multiple OS versions incrementally增量支持多个操作系统版本
【发布时间】:2011-09-27 18:05:13
【问题描述】:

我希望支持 Android 2.1 设备,但如果用户使用 Android 2.2+,也希望能够将我的应用移至 SD 卡

该属性是 android:installLocation="auto"

如何在为 2.2+ 启用此属性的同时仍支持 2.1?

编辑:我已使用 build 2.1 设置它,但出现编译错误,我无法启动我的应用程序。我不想将构建目标增加到 2.2 的原因是因为如果我这样做并且应用程序安装在 2.1 上,则会引发一堆异常并崩溃。我想确保该应用程序在 2.1 上完美运行。有关我的意思的示例,请参阅NoSuchMethodError: String.isEmpty

【问题讨论】:

    标签: android version


    【解决方案1】:

    Android Manual 为您提供准确的解决方案。

    【讨论】:

    • 简而言之:当您的应用程序安装在 API 级别低于 8 的设备上时,android:installLocation 属性将被忽略,应用程序安装在内部存储上。
    • 我明白了,但是在 Eclipse 中,如果我使用 2.1 目标设置它会出现编译错误,并且我无法启动我的应用程序
    • @bizso09:如上面链接的材料中的第 3 条所示,您需要将构建目标更改为 API 级别 8。
    • @CommonsWare 请在问题中查看我的编辑。我不想增加构建目标,因为如果应用程序安装在 2.1 上,可能会引发无法预料的异常
    • @bizso09:如果您不打算支持Android 2.2,则不需要android:installLocation,因为它不可用。如果您打算支持 Android 2.2,则无论您的构建目标如何,都需要修复“抛出一堆异常并崩溃”的问题。不同的构建目标不会导致运行时崩溃——不同的构建目标最多会导致编译时问题。
    【解决方案2】:

    可以,设置你的最低API等级为7,目标API等级为8,更多细节在Dev Guide

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      • 2014-12-17
      • 2018-08-15
      • 2020-07-26
      相关资源
      最近更新 更多