【问题标题】:Making 2.2 Android Application compatible for 1.5+使 2.2 Android 应用程序兼容 1.5+
【发布时间】:2010-09-23 11:47:21
【问题描述】:

我使用 Android 2.2 SDK(API 级别 8)编写了一个应用程序。它在模拟器中运行良好,但现在我希望它兼容 Android 1.5+(API 级别 3)或 Android 1.6+(API 级别 4)。

问题是当我尝试在这些版本上运行它时它在模拟器中崩溃。

什么是使它与这些版本兼容的好方法?有没有办法查看哪些类/方法导致了这些不兼容问题?

【问题讨论】:

    标签: android version


    【解决方案1】:

    您需要调用使用反射的 1.5 设备上不可用的功能。有关基本概念,请参阅此博客:http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

    【讨论】:

    • 查看 api 文档,它列出了引入方法/类的时间。如果它比 api 级别 3/4 更新,则需要使用反射(或使用其他方法)的解决方法,因为加载包含此代码的类时,您的应用程序将崩溃。所以运行你的应用程序并查看日志输出,看看是什么导致了你的问题。可能只有 1 或 2 个方法。
    • 如果我理解正确,我将不再以 Android 2.2 为目标,而是现在以 android 1.5 为目标,并通过使用反射添加所有在 1.6 和 2.2 之间可用的方法。如果是这种情况,我不会因为为旧版本进行编译而受到任何不利影响。例如,我可以想象像 JIT 编译器这样的东西将不再工作,除非我为 2.2 编译我的应用程序?
    • 您仍然可以定位 2.2,只需在清单中设置 minSdk 属性。
    • 好的,我发现了错误。我有一个 io-method 在找不到数据时崩溃,2.2 模拟器有数据但其他模拟器没有。结论:仔细查看日志输出的提示成功了!虽然我花了很长时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多