Android:上传APK到Play商店时“配置无法发布”

时间:2015-02-11 11:53:23

标签: android google-play

在尝试更新我们的应用时,我已经看到了Android Play商店问题的帮助。

完成apk上传后会出现问题,并显示以下消息:

  

由于以下原因,无法发布此配置:   禁止从14-18范围内的API级别升级到19+范围内的API级别的设备应从版本10降级到版本9,这将在   屏幕布局包含[small,normal,large,xlarge]和   功能包含所有[android.hardware.LOCATION,android.hardware.location.GPS,android.hardware.screen.PORTRAIT,android.hardware.TOUCHSCREEN,android.hardware.WIFI]。   某些设备有资格运行多个APK。在这种情况下,设备将接收具有更高版本代码的APK。

有点奇怪的是,Play商店将我们支持的API级别列为14-18,而我们的SDK设置如下:

/* build.gradle */
...
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "<my app id>"
        minSdkVersion 14
        targetSdkVersion 21
    }
...

/* AndroidManifest.xml */
...
android:versionCode="10"
    android:versionName="1.1.1" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="21" />
...

另一个(可能是次要的)问题是Play Store的APK DETAILS标签下列出了以下权限,尽管我们不会在我们的清单文件中设置此权限:
android.permission.CHANGE_WIFI_STATE

当我们将构建/目标SDK版本切换为19时(正如我们之前所做的那样),Android Studio正确地抱怨我们没有使用最新的Android版本。即便如此,我们仍然会看到上传问题。

我们的配置中是否还有其他错误? 在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

好的,我终于设法解决了这个问题。

  1. 使用aapt来了解Play Store如何解析apk
  2. 发现我使用的外部闭源库在其清单库中设置了maxSdkVersion = 18
  3. 获取了一个没有最大SDK设置的违规库版本。
  4. 重新编译应用程序并成功上传到Play商店。
  5. 第3步的替代方法是覆盖我的主AndroidManifest.xml文件中的maxSdkVersion,或者gradle中的Disable Manifest Merger in Android Gradle Build,但Android Studio在这方面并不合作。

    不可否认,Play商店中的错误消息相当神秘,可能措辞得更好。