Android:"configuration cannot be published" 正在将 APK 上传到 Play 商店
Android: "configuration cannot be published" while Uploading APK to Play Store
需要帮助解决我在尝试更新我们的应用程序时遇到的 Android Play 商店问题。
apk上传完成后出现问题,出现如下信息:
This configuration cannot be published for the following reason(s):
It is forbidden that a device upgrading from API levels in range 14-18 to API levels in range 19+ should downgrade from version 10 to version 9, which would occur when
Screen layouts containing any of [small, normal, large, xlarge] and
Features containing all of [android.hardware.LOCATION, android.hardware.location.GPS, android.hardware.screen.PORTRAIT, android.hardware.TOUCHSCREEN, android.hardware.WIFI].
Some devices are eligible to run multiple APKs. In such a scenario, the device will receive the APK with the higher version code.
有点奇怪的是,Play Store 将我们支持的 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 商店的 APK 详细信息选项卡下,尽管我们没有在我们的清单文件中设置它:
android.permission.CHANGE_WIFI_STATE
当我们将 build/target SDK 版本切换到 19 时(就像我们之前所做的那样),Android Studio 正确地抱怨我们没有使用最新的 Android 版本。即便如此,我们仍然看到上传问题。
我们的配置中是否还有其他错误?
预先感谢您的协助!
好的,我终于设法解决了这个问题。
- 使用 aapt 查看 Play 商店如何解析 apk
- 发现我正在使用的外部闭源库在其清单库中设置了 maxSdkVersion=18
- 获得了一个没有最大 SDK 设置的有问题的库版本。
- 重新编译应用并成功上传到Play商店。
第 3 步的替代方法是覆盖我的 AndroidManifest.xml 主文件中的 maxSdkVersion,或者覆盖 gradle 中的 Disable Manifest Merger in Android Gradle Build,但 Android Studio 没有在这方面非常合作。
诚然,Play Store 上的错误消息相当含糊,可以用更好的措辞表达。
需要帮助解决我在尝试更新我们的应用程序时遇到的 Android Play 商店问题。
apk上传完成后出现问题,出现如下信息:
This configuration cannot be published for the following reason(s): It is forbidden that a device upgrading from API levels in range 14-18 to API levels in range 19+ should downgrade from version 10 to version 9, which would occur when Screen layouts containing any of [small, normal, large, xlarge] and Features containing all of [android.hardware.LOCATION, android.hardware.location.GPS, android.hardware.screen.PORTRAIT, android.hardware.TOUCHSCREEN, android.hardware.WIFI]. Some devices are eligible to run multiple APKs. In such a scenario, the device will receive the APK with the higher version code.
有点奇怪的是,Play Store 将我们支持的 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 商店的 APK 详细信息选项卡下,尽管我们没有在我们的清单文件中设置它:
android.permission.CHANGE_WIFI_STATE
当我们将 build/target SDK 版本切换到 19 时(就像我们之前所做的那样),Android Studio 正确地抱怨我们没有使用最新的 Android 版本。即便如此,我们仍然看到上传问题。
我们的配置中是否还有其他错误? 预先感谢您的协助!
好的,我终于设法解决了这个问题。
- 使用 aapt 查看 Play 商店如何解析 apk
- 发现我正在使用的外部闭源库在其清单库中设置了 maxSdkVersion=18
- 获得了一个没有最大 SDK 设置的有问题的库版本。
- 重新编译应用并成功上传到Play商店。
第 3 步的替代方法是覆盖我的 AndroidManifest.xml 主文件中的 maxSdkVersion,或者覆盖 gradle 中的 Disable Manifest Merger in Android Gradle Build,但 Android Studio 没有在这方面非常合作。
诚然,Play Store 上的错误消息相当含糊,可以用更好的措辞表达。