Google Play开发者控制台:支持的Android设备:0

时间:2015-01-01 23:57:47

标签: android

我尝试上传很多次。关于同样的问题,我也看了很多其他的SO问题。在我的物理设备上运行正常,但在上传到谷歌播放时,它声明它支持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>

Picture of Google Play APK overview

这是我的项目目录的图片(使用android studio): Project Directory

的build.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_1 所以我尝试在清单中添加标签,而不是依靠gradle。开发人员控制台仍然认为我的应用程序支持零设备(在测试设备上正常工作)。

我还创建了一个新的密钥库并生成了一个签名的apk。然后重命名我的包并上传到谷歌播放开发者控制台作为一个名为'test'的独立应用程序,它仍然说它支持零设备。

我还在windows中安装了android studio然后生成了签名的apk。它也没用。我这样做是为了确保它不是我的配置或操作系统。

可能的假设?

当我第一次下载它时,我以root身份启动了android studio:'sudo ./studio.sh'。我认为它可能会使它更具响应性。这导致android sdk以root身份安装。所以现在,我必须以root身份启动android studio。这对生成签名的apk有什么影响吗?也许是配置/构建文件?我确实在Windows机器上尝试过(仍然无法正常工作),但可能以root身份启动它搞砸了项目的构建文件。

AAPT OUTPUT 版本代码会有所不同,因为我曾尝试将其上传到谷歌播放很多次(必须更改版本号/代码)。

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'

3 个答案:

答案 0 :(得分:2)

由于您的屏幕截图显示您正在使用“1个功能”而我找不到您使用的两个特定权限feature implied,我的建议现在是{{3} }:

  

测试应用程序所需的功能

     

您可以使用Android SDK中包含的aapt工具来确定   Google Play将根据声明的内容过滤您的应用   功能和权限。为此,请使用aapt运行dump badging   命令。这会导致aapt解析应用程序的清单和   应用与Google Play使用的相同规则来确定功能   你的申请需要。

     

要使用该工具,请按以下步骤操作:

     
      
  1. 首先,构建并将您的应用程序导出为未签名的.apk。如果您使用ADT在Eclipse中进行开发,请右键单击该项目   选择 Android工具&gt;导出未签名的应用程序包。选择一个   目标文件名和路径,然后单击确定
  2.   
  3. 接下来,找到aapt工具(如果它尚未在您的路径中)。如果您使用的是SDK Tools r8或更高版本,您可以在中找到   / platform-tools / directory。
  4.   

注意: 您必须使用为最新的Platform-Tools组件提供的aapt版本。如果您没有最新的Platform-Tools组件,请使用the following下载。

  
      
  1. 使用以下语法运行aapt
  2.         

    $ aapt dump badging <path_to_exported_.apk>

         

    以下是第二个蓝牙示例的命令输出示例:

    $ ./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'
    

答案 1 :(得分:0)

在清单中添加以下行,我希望它有效

<uses-sdk
    android:maxSdkVersion="21"
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />

注意: android:maxSdkVersion,android:minSdkVersion,android:targetSdkVersion取决于您的要求

答案 2 :(得分:0)

我不得不在android studio中重新创建一个新的android项目。然后复制并粘贴android清单,src目录,res目录和build目录。该应用程序上传到谷歌播放,声称它支持超过7000个设备。非常烦人,但这是我的修复。