许多手机不兼容安卓应用程序。

4

我编写了一款安卓应用,现在有用户报告说该应用与许多手机不兼容。我认为要求/权限并不那么奇特。

我的清单文件包含以下代码:

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>

不兼容的手机显示为灰色: Market http://www.preston.be/market.png 有没有人知道缺少或错误了什么?

为什么你有两次互联网权限?另外,你是否为每个屏幕尺寸都有特定的资源?你还针对市场占有率约为4%(1.5和1.6)的Android版本进行定位。 - TomHarrigan
你的清单文件中有任何 <uses-feature><uses-configuration> 元素吗? - CommonsWare
更具体地说,您可以使用aapt dump badging来帮助诊断这种问题:http://developer.android.com/guide/topics/manifest/uses-feature-element.html#testing - CommonsWare
3个回答

2

根据

android:minSdkVersion="3" android:maxSdkVersion="4"

您只支持安卓1.5和1.6版本的设备,而大多数设备都有更高版本的操作系统,如Froyo 2.2。

请安装最新的SDK,然后在您的Android项目中进入“属性” -> “Android”,并更改“项目构建目标”,例如Android 2.2,API级别8。

接着,在您的AndroidManifest.xml文件中进行更改。

android:minSdkVersion="3" android:maxSdkVersion="8"

那么你的应用程序将能够支持更多设备...

android:targetSdkVersion 不等同于 android:maxSdkVersion。目标版本未指定上限。 - CommonsWare

0

问题在这里:<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>

您的目标是 Android 1.6 手机,市场上只有不到 15% 的手机使用该版本的 Android。您应该将目标定为最新的 Android 版本。这里是关于 API 级别的 Android 文档,可以让您更好地了解此问题。

同时,这里也有关于版本的说明。

正如 @commonsware 在下面提到的,我误解了这个问题。请原谅。


1
android:targetSdkVersion 不等同于 android:maxSdkVersion。目标版本未指定上限。 - CommonsWare

0
问题在于您使用的SDK版本中有一个隐含的CALL_PHONE权限(请参见这里这里以获取更详细的解释)。您可以通过按照第二个链接中所示更改targetSdkVersion来解决此问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接