App is incompatible with all devices after publishing to the Market but same was working when moved directly to the device(应用程序发布到市场后与所有设备不兼容,但直接移动到设备时相同)
问题描述
我使用 PhoneGap 开发了一个应用程序,并在不同版本的模拟器和我的摩托罗拉 Photon 中进行了测试.我在测试中没有遇到任何问题.
I have developed an app using PhoneGap and tested the same in different version of emulator and also in my Motorola Photon. I have not faced any problem in testing.
但是当我在市场上发布相同的内容时,它显示此应用与您的所有设备都不兼容.".我的设备屏幕尺寸不同,操作系统版本从 2.1 到 2.4 不等.
But when I published the same in the market it says "This app is incompatible with all of your devices.". My devices are with different screen size, different OS version ranging from 2.1 to 2.4.
在发布主页中,它显示此应用程序可用于超过 679 台设备."它包括 Motorola Photon 4g 和我在市场上注册的所有其他设备下载.
In publish home page, it says "This application is available to over 679 devices." It includes Motorola Photon 4g and all other devices which I have registered in the market download.
我已经根据 stackoverflow 中针对此类问题给出的所有答案更新清单文件和 java 文件,多次重新发布代码.要列出它,
I have republished the code many times by updating manifest file and java file based on all the answers given through out the stackoverflow for this kind of issues. To list it,
- 删除用户权限
- 更新所有支持屏幕的组合
- 多次刷新发布页面中的保存按钮
- 卸载我手机中的应用(但我还有几台设备没有测试我的应用,但仍然显示不兼容)
- 运行 aapt 工具
- 从 lib 文件夹中删除 jar 文件并在 Eclipse 中外部引用它
- 还有一些我想不起来的变化
下面是清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.myapps"
android:versionCode="5" android:versionName="1.4">
<uses-sdk android:minSdkVersion="7" />
<supports-screens android:largeScreens="true"
android:normalScreens="true" android:smallScreens="true"
android:resizeable="true" android:anyDensity="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<application android:icon="@drawable/app_icon" android:label="@string/app_name">
<activity android:name="com.test.myapps.HomePage" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize">
</activity>
</application>
</manifest>
请帮我解决这个问题.提前致谢....
推荐答案
你是不是专门跑了aapt dump badging <.apkfile>"?
Did you specifically run "aapt dump badging <.apkfile> ?
Android 文档这里.
Android docs here.
我遇到了类似的问题.原来我需要在我的清单中使用android:required="false" 用于多种用途,例如:
I had a similar problem. Turns out I needed to use in my manifest the android:required="false" for several uses-features, like:
< uses-feature android:name="android.hardware.telephony" android:required="false" >
完整清单示例此处.转储标志的结果表明,市场增加了几个用途特征(有点aapt 输出进一步下降),主要排除了三星设备.
Full manifest example here. The results of dump badging showed that the market had added several uses-features (a bit further down in aapt output) that excluded mostly Samsung devices.
这篇关于应用程序发布到市场后与所有设备不兼容,但直接移动到设备时相同的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!