【问题标题】:Supporting manifest attributes from higher API level while building against lower API level?支持来自较高 API 级别的清单属性,同时针对较低 API 级别进行构建?
【发布时间】:2011-09-12 23:06:22
【问题描述】:

我有一个必须与 Android 2.1(Eclair,API 级别 7)兼容的应用程序。我想使用仅受 Android 2.2+ 支持的清单属性(Froyo,API 级别 8)。通常,我不想在我的代码中直接调用(即不通过反射)ANY 8 级 API。

这个问题的公认解决方案是针对 Froyo (API 8) 进行编译,并在 manfiest 中包含一个 uses-sdk 标记以指示向后兼容性:

<uses-sdk android:minSdkVersion="7"/>

需要注意的是,现在我们需要对 Eclair 进行仔细和广泛的测试(通过自动测试和/或手动),以确保我们没有意外使用 Froyo 特定的 API 调用。

在我看来,这几乎不是一个可以接受的解决方案。我强烈倾向于只使用反射来调用高于应用程序基线要求的 API,并且只想支持高于基线的清单设置。有没有办法干净简单地解决这个问题?

我目前的解决方法是删除与基线 API 不兼容的清单条目,并在任何公开发布之前执行测试编译。

感谢您的任何建议!

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    这是你现在能做的最好的事情。

    这也适用于在布局文件中使用不受支持/不推荐使用的属性。您无法在 Manifest 文件或任何其他资源文件中放置条件。

    但是,我认为这不是什么大问题,至少目前是这样,因为从现在开始,您将看到大多数用户切换到最新版本(4.0 及更高版本)。

    【讨论】:

      猜你喜欢
      • 2016-04-28
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      相关资源
      最近更新 更多