minSdkVersion 1.5的问题

时间:2010-01-06 14:30:07

标签: android layout resources dpi

我们遇到了与清单文件和属性“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”周围的任何已知问题。

谢谢!

3 个答案:

答案 0 :(得分:5)

如果您指定targetSdkVersion以及minSdkVersion,您的应用程序将开始在所有平台上正常运行。

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

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

Android API Levels page in the Android Developer documentation

中介绍了这一点

答案 1 :(得分:4)

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

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

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

但是,我没有看到你正在发生的相反情况,即2.0设备似乎选择了不同的屏幕密度或者假设不同的屏幕密度。

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

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

答案 2 :(得分:0)

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

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