【问题标题】:Problems wih minSdkVersion 1.5minSdkVersion 1.5 的问题
【发布时间】:2010-01-06 14:30:06
【问题描述】:

我们遇到了与清单文件和属性“android:minSdkVersion”有关的问题。 问题是:如果我们的平台是 2.0,并且我们使用属性“android:minSdkVersion=3”(3 = sdk 1.5),图形会损坏(具体来说,应用程序的分辨率会降低到原始大小的 2/3 ,也就是说,当分辨率应该是480x720时,它变成了320x480)。这发生在 Android 模拟器和设备 Droid/Milestone(平台 2.0)上。当我们将属性切换到“android:minSdkVersion=4”(4 = sdk 1.6)时,问题就解决了,但是当我们想将该版本放在平台 1.5 上时,Android 不允许我们安装它。 这将有助于我们了解 2.0 sdk 中有关图形的任何冲突,或清单中有关“android:minSdkVersion”的任何已知问题。

谢谢!

【问题讨论】:

    标签: android layout resources dpi


    【解决方案1】:

    如果您指定targetSdkVersionminSdkVersion,您的应用程序将开始在所有平台上正常工作。

    所以在你的清单中有一个这样的条目:

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
    

    Android API Levels page in the Android Developer documentation 对此进行了介绍。

    【讨论】:

    • 它可以工作,但使用 sdk 1.6(我们使用 1.5 sdk 版本编译)。谢谢你的医治!!!
    【解决方案2】:

    我假设您是specifying different assets for different screen densities,使用res/drawable-mdpires/drawable-hdpi 等目录?

    Android 1.6(API 级别 4)是支持多种屏幕密度的 SDK 的第一个版本,因此它知道这些目录名称的重要性,因此可以成功地从您的 res 文件夹中为特定设备选择正确的可绘制对象它正在运行。

    但是,如果您在 Android 1.5 设备(API 级别 3)上运行以这种方式开发的应用程序,则框架不知道它应该只使用中等 DPI 资源(因为没有 Android 1.5 设备发布除了中等 DPI 屏幕 (AFAIK) 以外的任何东西)。因此,在这种情况下,框架最终可能会看似随机地从 APK 中的所有可用资源中进行选择,无论它们是用于高密度屏幕还是中等密度屏幕,或者其他什么。

    但是,我没有看到与您相反的情况,即 2.0 设备似乎为或假设不同的屏幕密度选择可绘制对象。

    我会确保您的res 目录布局是正确的,并且您在每个布局中都使用了density-independent measurements

    但如果你想在单个 APK 中支持多种屏幕分辨率和密度支持 Android 1.5 设备,那么我认为这是不可能的。

    【讨论】:

    • 您可以通过使用版本说明符来阻止 Android 1.5 将资源目录用于其他密度。示例:“res/drawable-hdpi-v4”。
    • 啊,好的,谢谢;我最近读到了这一点,但从未意识到 -v4 (etc) 修饰符自 1.5 或更早版本就已存在。
    【解决方案3】:

    在您的 AndroidManifest.xml 中添加此标签以支持多种屏幕密度。

    <supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="false" /> 
    

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2013-04-07
      • 1970-01-01
      • 2017-01-16
      • 1970-01-01
      • 2011-02-18
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多