我尝试过多次上传。我还研究了许多关于同一问题的其他SO问题。在我的物理设备上运行良好,但当上传到google play时,它声明支持0台设备。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.slhdevelopmentf.ammobotammofinderprimetime">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@drawable/ammobot_main_icon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".activities.MainActivity"
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=".activities.SecondaryActivity"
android:label="@string/title_activity_secondary" />
<activity
android:name=".activities.ShowGunbotDealActivity"
android:label="@string/title_activity_show_gunbot_deal" />
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
</application>
建造。Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.slhdevelopmentf.ammobotammofinderprimetime"
minSdkVersion 9
targetSdkVersion 21
versionCode 7
versionName "2.2"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
resources.srcDirs = ['src/main/resources', 'src/main/resources/raw', 'src/main/resources/lib']
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile files('src/main/resources/lib/jsoup-1.8.1 (1).jar')
compile files('src/main/resources/lib/jsoup-1.8.1-javadoc.jar')
compile files('src/main/resources/lib/jxl.jar')
compile 'com.google.android.gms:play-services:6.+'
}
编辑
所以我反编译了我的。apk。这表明android清单是完全空白的。
EDIT\u 1,所以我尝试在清单中添加标记,而不是依赖gradle。开发人员控制台仍然认为我的应用程序支持零设备(在测试设备上运行良好)。
我还创建了一个新的密钥库并生成了一个签名的apk。然后重命名了我的软件包,并作为一个名为“test”的独立应用程序上传到google play开发者控制台,它仍然表示它支持零设备。
我还在windows中安装了android studio,然后生成了签名的apk。它也不起作用。我这样做是为了确保它不是我的配置或操作系统。
可能的假设?
当我第一次下载android studio时,我以root用户身份启动了它:“sudo/演播室sh’。我想这可能会让它更灵敏。这导致android sdk被安装为root用户。所以现在,我必须以root用户身份启动android studio。这会对生成签名的apk产生任何影响吗?可能是配置/构建文件?虽然我确实在windows box上尝试过它(仍然不起作用),但可能是因为root用户弄乱了项目的构建文件而启动它。
AAPT OUTPUT版本代码会有所不同,因为我多次尝试将其上传到google play(不得不更改版本号/代码)。
root@my-pc:/root/Android/Sdk/build-tools/21.1.2# /root/Android/Sdk/build-tools/21.1.2/aapt dump badging /home/horvste/Documents/PreviousCodeProjects/documents-export-2014-12-23/AmmoBot/app/build/outputs/apk/app-debug.apk
package: name='com.slhdevelopment.ammobot' versionCode='12' versionName='2.7' platformBuildVersionName='5.0.1-1624448'
sdkVersion:'9'
targetSdkVersion:'21'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
application-label:'AmmoBot'
application-label-ca:'AmmoBot'
application-label-da:'AmmoBot'
application-label-fa:'AmmoBot'
application-label-ja:'AmmoBot'
application-label-nb:'AmmoBot'
application-label-de:'AmmoBot'
application-label-af:'AmmoBot'
application-label-bg:'AmmoBot'
application-label-th:'AmmoBot'
application-label-fi:'AmmoBot'
application-label-hi:'AmmoBot'
application-label-vi:'AmmoBot'
application-label-sk:'AmmoBot'
application-label-uk:'AmmoBot'
application-label-el:'AmmoBot'
application-label-nl:'AmmoBot'
application-label-pl:'AmmoBot'
application-label-sl:'AmmoBot'
application-label-tl:'AmmoBot'
application-label-am:'AmmoBot'
application-label-in:'AmmoBot'
application-label-ko:'AmmoBot'
application-label-ro:'AmmoBot'
application-label-ar:'AmmoBot'
application-label-fr:'AmmoBot'
application-label-hr:'AmmoBot'
application-label-sr:'AmmoBot'
application-label-tr:'AmmoBot'
application-label-cs:'AmmoBot'
application-label-es:'AmmoBot'
application-label-it:'AmmoBot'
application-label-lt:'AmmoBot'
application-label-pt:'AmmoBot'
application-label-hu:'AmmoBot'
application-label-ru:'AmmoBot'
application-label-zu:'AmmoBot'
application-label-lv:'AmmoBot'
application-label-sv:'AmmoBot'
application-label-iw:'AmmoBot'
application-label-sw:'AmmoBot'
application-label-fr-CA:'AmmoBot'
application-label-lo-LA:'AmmoBot'
application-label-en-GB:'AmmoBot'
application-label-bn-BD:'AmmoBot'
application-label-et-EE:'AmmoBot'
application-label-ka-GE:'AmmoBot'
application-label-ky-KG:'AmmoBot'
application-label-km-KH:'AmmoBot'
application-label-zh-HK:'AmmoBot'
application-label-si-LK:'AmmoBot'
application-label-mk-MK:'AmmoBot'
application-label-ur-PK:'AmmoBot'
application-label-hy-AM:'AmmoBot'
application-label-my-MM:'AmmoBot'
application-label-zh-CN:'AmmoBot'
application-label-ta-IN:'AmmoBot'
application-label-te-IN:'AmmoBot'
application-label-ml-IN:'AmmoBot'
application-label-en-IN:'AmmoBot'
application-label-kn-IN:'AmmoBot'
application-label-mr-IN:'AmmoBot'
application-label-mn-MN:'AmmoBot'
application-label-ne-NP:'AmmoBot'
application-label-pt-BR:'AmmoBot'
application-label-gl-ES:'AmmoBot'
application-label-eu-ES:'AmmoBot'
application-label-is-IS:'AmmoBot'
application-label-es-US:'AmmoBot'
application-label-pt-PT:'AmmoBot'
application-label-zh-TW:'AmmoBot'
application-label-ms-MY:'AmmoBot'
application-label-kk-KZ:'AmmoBot'
application-label-uz-UZ:'AmmoBot'
application-icon-160:'res/drawable-mdpi-v4/ammobot_main_icon.png'
application-icon-213:'res/drawable-hdpi-v4/ammobot_main_icon.png'
application-icon-240:'res/drawable-hdpi-v4/ammobot_main_icon.png'
application-icon-320:'res/drawable-xhdpi-v4/ammobot_main_icon.png'
application-icon-480:'res/drawable-xxhdpi-v4/ammobot_main_icon.png'
application-icon-640:'res/drawable-xxhdpi-v4/ammobot_main_icon.png'
application: label='AmmoBot' icon='res/drawable-mdpi-v4/ammobot_main_icon.png'
application-debuggable
launchable-activity: name='com.slhdevelopment.ammobot.activities.MainActivity' label='AmmoBot' icon=''
feature-group: label=''
uses-feature: name='android.hardware.touchscreen'
uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'
main
other-activities
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ca' 'da' 'fa' 'ja' 'nb' 'de' 'af' 'bg' 'th' 'fi' 'hi' 'vi' 'sk' 'uk' 'el' 'nl' 'pl' 'sl' 'tl' 'am' 'in' 'ko' 'ro' 'ar' 'fr' 'hr' 'sr' 'tr' 'cs' 'es' 'it' 'lt' 'pt' 'hu' 'ru' 'zu' 'lv' 'sv' 'iw' 'sw' 'fr-CA' 'lo-LA' 'en-GB' 'bn-BD' 'et-EE' 'ka-GE' 'ky-KG' 'km-KH' 'zh-HK' 'si-LK' 'mk-MK' 'ur-PK' 'hy-AM' 'my-MM' 'zh-CN' 'ta-IN' 'te-IN' 'ml-IN' 'en-IN' 'kn-IN' 'mr-IN' 'mn-MN' 'ne-NP' 'pt-BR' 'gl-ES' 'eu-ES' 'is-IS' 'es-US' 'pt-PT' 'zh-TW' 'ms-MY' 'kk-KZ' 'uz-UZ'
densities: '160' '213' '240' '320' '480' '640'
native-code: 'jsoup-1.8.1.jar' 'jxl.jar'
我不得不在android studio中重新创建一个新的android项目。然后复制并粘贴android清单、src目录、res目录和build目录。该应用程序上传到google play,表示它支持7000多台设备。不得不这么做很烦人,但这是我的解决办法。
在清单中添加以下行,我希望它有效
<uses-sdk
android:maxSdkVersion="21"
android:minSdkVersion="8"
android:targetSdkVersion="19" />
注意:android:maxSdkVersion、android:minSdkVersion、android:targetSdkVersion取决于您的需求
由于您的屏幕截图显示您正在使用“1个功能”,而我找不到您正在使用的两个特定权限所隐含的任何功能,因此我现在建议您执行以下操作:
您可以使用Android SDK中包含的aapt工具来确定Google Play将如何根据其声明的功能和权限过滤您的应用程序。要执行此操作,请使用转储徽标命令运行aapt。这将导致aapt解析应用程序的清单,并应用与Google Play相同的规则来确定应用程序所需的功能。
要使用该工具,请执行以下步骤:
注意:您必须使用为可用的最新平台工具组件提供的aapt版本。如果您没有最新的平台工具组件,请使用Android SDK管理器下载它。
<代码>$aapt转储徽标
下面是上面第二个蓝牙示例的命令输出示例:
$ ./aapt dump badging BTExample.apk
package: name='com.example.android.btexample' versionCode='' versionName=''
uses-permission:'android.permission.BLUETOOTH_ADMIN'
uses-feature:'android.hardware.bluetooth'
sdkVersion:'3'
targetSdkVersion:'5'
application: label='BT Example' icon='res/drawable/app_bt_ex.png'
launchable activity name='com.example.android.btexample.MyActivity'label='' icon=''
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'small' 'normal' 'large'
locales: '--_--'
densities: '160'
代码是很容易出现错误的。你也很可能犯错误……哦,我在说什么?只要你是人,你 一定 会犯错误(在写代码的时候),除非你是 机器人。 但在浏览器中,默认情况下用户是看不到错误的。所以,如果脚本中有错误,我们看不到是什么错误,更不能够修复它。 为了发现错误并获得一些与脚本相关且有用的信息,浏览器内置了“开发者工具”。 通常,开发者倾向于使用 Chrome 或 Firefox 进行开发,因为它们有最好的开
我在Google Play上发布了一个应用程序,但我的一些用户无法使用他们的设备找到它。 该应用程序的最小apk为11(Android 3.0)。 例如,当有人使用Android4.0的三星银河SII时,该应用程序无法找到,因为SII的初始版本是Android2.3。有了SIII就没问题了。 在开发者控制台中,控制台在上传apk时自动检查哪些设备兼容。作为开发人员,我可以禁用设备进行下载,但不能启
在Google Play控制台中设置android应用程序时遇到问题。上传apk后,我看到“支持的Android设备-0设备”。 这是舱单 这里是gradle设置 该应用程序已经在一些设备上进行了测试。 我知道这是一个常见的问题,但是我发现的大多数问题都与相机的许可有关。 我做错了什么?
我也被他们的支持吓坏了,我只得到了一般的“嘿,你看过我们的常见问题吗?”对电子邮件的答复。
我可以在崩溃报告中看到一些应用程序崩溃 我想知道的是,android是否总是收集关于崩溃的数据,或者用户是否需要手动报告崩溃,以便我能够在开发者控制台中查看崩溃报告?我已经看到几个应用程序在我的设备上崩溃,但我不记得有人要求我确认报告问题。
现在有了新的重新设计,还有什么方法可以得到这些信息吗? 谢谢