我已根据其他帖子的建议检查了使用权限,使用功能和支持屏幕。我已经在playstore中上传了一个应用程序作为带有以下清单文件的更新。以前的版本运行良好。该项目早些时候在eclipse中,现在转移到android工作室。我遇到了清单合并,因为使用了很多库,因此不必要地添加了许多权限,因此我逐个删除了每个。检查了uses-permission和uses-feature。以前版本的清单变化由星号
表示我的应用程序必须仅支持平板电脑。
这是主要的清单文件。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.xx.yy"
android:versionCode="13"
android:versionName="1.8.1">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<supports-screens
android:largeScreens="true"
android:normalScreens="false"
android:requiresSmallestWidthDp="600"
android:smallScreens="false"
android:xlargeScreens="true"
*tools:replace="android:normalScreens,android:smallScreens" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.camera" />
*<uses-feature
* android:name="android.hardware.location.gps"
* android:required="false" />
*<uses-feature
* android:name="android.hardware.location.network"
* android:required="false" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name="com.xx.yy.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.xx.yy.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
*<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
* <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>*
*<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" tools:node="remove"/>
* <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" tools:node="remove"/>
* <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" tools:node="remove"/>
* <uses-permission android:name="android.permission.VIBRATE" tools:node="remove"/>
* <uses-permission android:name="android.permission.FLASHLIGHT" tools:node="remove"/>
* <uses-permission android:name="android.permission.READ_CONTACTS" tools:node="remove"/>
</manifest>
在先前版本上运行转储标记后的AAPT属性。
package: name='om.xx.yyy' versionCode='8' versionName='1.7' platformBuildVersionName='5.0.1-1624448'
sdkVersion:'11'
targetSdkVersion:'19'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.READ_EXTERNAL_STORAGE'
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.GET_ACCOUNTS'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='com.hp.wallartsolutions2.permission.C2D_MESSAGE'
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
uses-permission: name='android.permission.GET_TASKS'
uses-permission: name='android.permission.REORDER_TASKS'
application-icon-120:'res/drawable-mdpi-v4/icon.png'
application-icon-160:'res/drawable-mdpi-v4/icon.png'
application-icon-240:'res/drawable-hdpi-v4/icon.png'
application-icon-320:'res/drawable-xhdpi-v4/icon.png'
application-icon-480:'res/drawable-xxhdpi-v4/icon.png'
application: label='xyz' icon='res/drawable-mdpi-v4/hp_icon.png'
launchable-activity: name='com.xx.yyy.ui.SplashScreenActivity' label='' icon=''
feature-group: label=''
uses-feature: name='android.hardware.camera'
uses-feature: name='android.hardware.screen.landscape'
uses-implied-feature: name='android.hardware.screen.landscape' reason='one or more activities have specified a landscape orientation'
uses-feature: name='android.hardware.touchscreen'
uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'
main
other-activities
other-receivers
other-services
supports-screens: 'large' 'xlarge'
supports-any-density: 'true'
requires-smallest-width:'600'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'id' 'be' 'de' 'he' 'af' 'bg' 'th' 'zh' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'nl' 'pl' 'sl' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'ms' 'it' 'lt' 'pt' 'eu' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr-CA' 'lo-LA' 'en-GB' 'et-EE' 'ka-GE' 'km-KH' 'zh-HK' 'hy-AM' 'zh-CN' 'en-IN' 'mn-MN' 'pt-BR' 'es-ES' 'es-US' 'pt-PT' 'zh-TW' 'ms-MY'
densities: '120' '160' '240' '320' '480'
native-code: 'armeabi' 'armeabi-v7a'
我尝试在当前版本的apk上运行aapt dump badging来查找apk属性。 这就是结果。
package: name='com.xx.yyy' versionCode='13' versionName='1.8.1' platformBuildVersionName='4.4W.2-1537038'
sdkVersion:'14'
targetSdkVersion:'19'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.READ_EXTERNAL_STORAGE'
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE'
uses-permission: name='android.permission.CAMERA'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
uses-permission: name='android.permission.GET_ACCOUNTS'
uses-permission: name='android.permission.WAKE_LOCK'
uses-permission: name='com.xx.yyy.permission.C2D_MESSAGE'
uses-permission: name='com.google.android.c2dm.permission.RECEIVE'
uses-permission: name='android.permission.GET_TASKS'
uses-permission: name='android.permission.REORDER_TASKS'
uses-permission: name='android.permission.ACCESS_COARSE_LOCATION'
uses-permission: name='android.permission.ACCESS_FINE_LOCATION'
application-label:'xyz'
application-icon-120:'res/drawable-mdpi-v4/icon.png'
application-icon-160:'res/drawable-mdpi-v4/icon.png'
application-icon-240:'res/drawable-hdpi-v4/icon.png'
application-icon-320:'res/drawable-xhdpi-v4/icon.png'
application-icon-480:'res/drawable-xxhdpi-v4/icon.png'
application: label='xyz' icon='res/drawable-mdpi-v4/icon.png'
launchable-activity: name='com.xx.yy.zz.SplashScreenActivity' label='' icon=''
feature-group: label=''
uses-feature: name='android.hardware.camera'
uses-feature-not-required: name='android.hardware.camera.autofocus'
uses-feature-not-required: name='android.hardware.camera.flash'
uses-feature-not-required: name='android.hardware.camera.front'
uses-feature-not-required: name='android.hardware.location.gps'
uses-feature: name='android.hardware.screen.landscape'
uses-feature: name='android.hardware.touchscreen'
uses-feature-not-required: name='android.hardware.wifi'
uses-feature: name='android.hardware.location'
uses-implied-feature: name='android.hardware.location' reason='requested android.permission.ACCESS_COARSE_LOCATION permission, and requested android.permission.ACCESS_FINE_LOCATION permission'
uses-feature: name='android.hardware.location.network'
uses-implied-feature: name='android.hardware.location.network' reason='requested android.permission.ACCESS_COARSE_LOCATION permission'
main
other-activities
other-receivers
other-services
supports-screens: 'large' 'xlarge'
supports-any-density: 'true'
requires-smallest-width:'600'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'pa' 'ta' 'nb' 'id' 'be' 'de' 'he' 'te' 'af' 'bg' 'th' 'zh' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'ml' 'nl' 'pl' 'sl' 'tl' 'am' 'bn' 'in' 'kn' 'ko' 'ro' 'ar' 'fr' 'hr' 'mr' 'sr' 'tr' 'cs' 'es' 'ms' 'it' 'lt' 'pt' 'eu' 'gu' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr-CA' 'lo-LA' 'en-GB' 'et-EE' 'ka-GE' 'km-KH' 'zh-HK' 'hy-AM' 'zh-CN' 'en-IN' 'mn-MN' 'pt-BR' 'es-ES' 'es-US' 'pt-PT' 'zh-TW' 'ms-MY'
densities: '120' '160' '240' '320' '480'
native-code: 'armeabi' 'armeabi-v7a'
是否有我遗漏的东西,以便7英寸设备的应用程序也可见?我的应用程序必须仅支持平板电脑。 该应用程序未列出任何7英寸设备。 aapt dump badging命令显示对大型和x大型设备的支持。
由于zing库以下是库中的权限而发生的清单合并
<manifest
package="com.google.zxing.client.android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
android:versionCode="94"
android:versionName="4.5.1">
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19"/>
<!-- Don't require camera, as this requires a rear camera. This allows it to work on the Nexus 7 -->
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
<uses-feature
android:name="android.hardware.camera.front"
android:required="false"/>
<!-- TODO replace above two with next line after Android 4.2 -->
<!-- <uses-feature android:name="android.hardware.camera.any"/> -->
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false"/>
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false"/>
<uses-feature android:name="android.hardware.screen.landscape"/>
<uses-feature
android:name="android.hardware.wifi"
android:required="false"/>
<!-- This excludes Google TV, which is unfortunately included by virtue of not requiring a camera -->
<uses-feature android:name="android.hardware.touchscreen"/>
<!-- TODO make this not required again after android.hardware.camera.any is available -->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"/>
</manifest>
更新1:我将使用功能android.hardware.location.gps更改为false,并且它不会直接出现在Playstore搜索中。但是当从浏览器搜索并按下安装导航到Playstore并成功安装时。我使用HP Slate 7安装http://www.gsmarena.com/hp_slate_7-5317.php
更新2:我已将使用功能android.hardware.location.network更改为false并上传了测试版。等待它现在活跃
答案 0 :(得分:3)
这不是许可的问题,而是引起这个问题的<support-screens>
块。
<supports-screens
android:largeScreens="true"
android:normalScreens="false"
android:requiresSmallestWidthDp="600"
android:smallScreens="false"
android:xlargeScreens="true"
tools:replace="android:normalScreens,android:smallScreens" />
您的应用限制在某些屏幕上,因此我建议您对其进行审核,尤其是设置为false
的条目。
修改强>
tools:replace
告诉您要使用清单中的值,而不是libs中的值。而你的人告诉normalScreen=false
。 normalScreen
是Traditionally this is an HVGA medium density screen, but WQVGA low density and WVGA high density are also considered to be normal
。我怀疑7“平板电脑,你看到的问题不是高分辨率屏幕供电,如果是这样,那就是为什么你的应用程序被列为不兼容的原因。除非你的应用程序真的不能用于normalScreen
,否则没有设置点这到false
。
答案 1 :(得分:2)
我在上传时遇到了同样的事情。它
当我删除所有uses-feature
块时,它开始列出所有手机和平板电脑。这是我的清单 -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.COMPANY.APP.app">
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.COMPANY.APP.app.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.COMPANY.APP.app.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.COMPANY.APP.app.gcm.permission.C2D_MESSAGE" />
<uses-permission
android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
</manifest>
答案 2 :(得分:0)
通过添加解决。
*<uses-feature
android:name="android.hardware.location"
android:required="false" />*
<uses-feature
android:name="android.hardware.location.gps"
android:required="false" />
<uses-feature
android:name="android.hardware.location.network"
android:required="false" />
HP slate 7没有位置支持。斜体中的位置块需要使应用程序在HP slate 7中可见