我们遇到了与清单文件和属性“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”周围的任何已知问题。
谢谢!
答案 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-mdpi
,res/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" />