Google Play - 完全阴影 apk
Posted
技术标签:
【中文标题】Google Play - 完全阴影 apk【英文标题】:Google Play - Fully Shadowed apk 【发布时间】:2017-07-13 11:30:42 【问题描述】:我在 PlayStore 上有一个现有应用。我将作为分阶段推出发布应用程序的新版本。但是,由于“Fully Shadowed APK”错误,我无法发布该应用程序。
到目前为止,我还没有找到任何有关如何解决此错误的文档。还有其他人遇到过这种情况吗?
【问题讨论】:
可能是版本代码与 Playstore 版本代码相比是旧版本。检查两个版本代码 @Hanuman 我检查了三次。版本代码和版本号都更大。 【参考方案1】:更新:- 就这个问题与与 Google Play 控制台团队合作的 Google 员工进行了交谈。我当时的一个误解是,如果你想分阶段推出,你需要保留一个 APK。我和他讨论过这个问题,他澄清说不需要。即使分阶段推出,没有保留 APK,Google Play 也会向访问该应用页面的用户显示安装选项。希望这可以为面临类似问题的人消除疑虑。
我遇到了同样的问题,我没有点击之前版本的“保留”并上传了一个新版本,然后“开始滚动”按钮变成可点击并完成! ^_^
【讨论】:
这是目前对我们有用的方法,希望有人知道一个更好的解决方案,这感觉像是一个 hack 而不是解决方案。 哪个频道?生产/测试版/阿尔法? 我看到这是公认的答案,但我不明白你实际上做了什么来使它工作。以前版本不点击“保留”是什么意思?您在哪里看到此“保留”选项?我去我的应用程序发布,浏览一个 apk,上传它然后查看,我看到了错误。我在任何地方都没有保留或不保留选项。 @Dallas Caley 我也遇到了同样的问题,你是如何解决的......请先生帮助我 @DallasCaley @GowthamanM 很抱歉没有早点回复,由于某种原因我没有收到通知。当您开始一个新版本时,“准备发布”部分,您有一个名为APKs to retain
的部分,您可以在那里看到保留的 APK。【参考方案2】:
Play 管理中心存在错误,因此无法正常工作。这是解决方法:
说,你有两个版本:
-
测试版:29
Alpha:之前的版本为 29,但现在为空:上面写着“升级为 beta”。您要上传版本 30。
然后这样做:
-
使用版本 30 创建一个新的 Alpha 版本,并停用以前的 APK。当您尝试推出它时,它会报错 Full shadowed APK。
返回一个页面,现在删除版本 30。将选择版本 29,单击保存并开始推出 Alpha。这只会停用 29。
为 30 创建一个新的 Alpha 版本,它现在应该可以工作了。
【讨论】:
大声笑,我们遇到了同样的问题并且做了同样的事情......并且问题解决了。似乎 Play 商店发布管理器中存在一些错误【参考方案3】:注意:此解决方案在发布时有效,如果将来不起作用,请不要认为它是错误的,因为事情会随着时间而变化。
在上传适合我的新 APK 时,您必须停用以前的版本。只需停用以前的版本并上传新的 APK 并将其推出以进行生产。
【讨论】:
作为最后的手段,我这样做了,它奏效了。但是,我想分阶段推出,但我做不到。关于这个错误的任何想法? 我认为现在他们只允许一个活动的 APK,它是具有最高版本代码的最新版本,或者可能是他们这边的一个错误,但我不认为这是一个最严重的错误可能它们一次只限于一个活动的 APK。 我了解,但在这种情况下,分阶段部署将如何工作?分阶段推出需要旧版本的应用才能在 Play 商店中处于活动状态,不是吗? 谢谢,但较旧的 apk 是生产版本。如果我在 alpha 或 beta 轨道中停用它,它会删除生产版本吗?在这里查看问题:***.com/questions/61652630/…【参考方案4】:对我来说,它的工作方式如下:
首先仅发送您要停用的版本。 其次,发送带有您要发布到 Beta 版本的首次发布。似乎在某些情况下,Google Play 无法同时处理停用和发布。
【讨论】:
也为我工作。一个主要问题是错误消息非常无用。而且我也没有在帮助部分中看到这一点。最重要的是,我必须将浏览器切换为英文,以便可以搜索错误消息...叹息... 我实际上写了支持,让他们知道这个错误,他们告诉我它已发送给团队。这是否会导致修复,不能说。【参考方案5】:我遇到了完全相同的问题,并通过使用 config.xml 中的以下 versionCode 条目解决了它:
<widget id="io.cordova.hellocordova"
version="3.1.1"
android-versionCode="3001001"
这里 android-versionCode 很关键。它必须是一个整数大于与您上传的最后一个 APK 关联的数字。由于某种原因,我以前的版本在创建一个更高的数字之间有一个额外的零,这没有被注意到。由于我无法更改它,因为它已发布,我在新版本代码中添加了一个零并将其设为 3001001 而不是 300101。
完美运行。
希望对您有所帮助。
【讨论】:
这解决了我的离子应用程序的相同问题!谢谢你:)【参考方案6】:这里遇到了同样的问题,问题很可能是新的发布经理带来的。
感觉上一个版本(已经在 prod 中的版本)不知何故陷入了 alpha 状态,阻止了新版本的推出。
已联系 Google 支持并等待解决 (我正在为一个下载量超过 2500 万的应用工作,这个问题真的很严重,希望谷歌能尽快处理它)
在此期间,我们从未使用过 beta 通道,因此我们通过使用它解决了我们的问题。
【讨论】:
我们遇到了同样的问题 - 但我们通常上传到测试版然后发布到生产环境。现在无法升级到生产并显示“完全阴影 apk”错误。我已经上传到 alpha - 现在等待 20 分钟,看看我是否可以将其推广到生产环境。(这实际上是一个 PITA,因为我们的 QA 设置在 beta 通道上,我不想花时间设置 alpha现在频道) 从 Alpha 通道升级到生产似乎已经奏效。希望 Beta 频道不会长时间保持 FUBAR 状态 我们已经等待谷歌支持的答复好几个星期了,希望你能有更好的运气。如果您找到永久解决方案,请更新答案。 Google 支持人员在一天内回复我们说问题已修复...问题确实已修复。希望他们对你们所有人的反应和对我们的反应一样!好勇气:)【参考方案7】:我们在拆分 APK 时也遇到了这个问题。我们使用以下 gradle(简化)为每个 ABI 分配了版本代码:
ext.abiCodes = ['universal': 0, 'arm64-v8a': 1, 'armeabi-v7a': 2, 'x86': 3, 'x86_64': 4, ...]
android
applicationVariants.all variant ->
variant.outputs.each output ->
def abiName = output.getFilter(OutputFile.ABI)
def abiVersionCode = project.ext.abiCodes.get(abiName)
output.versionCodeOverride = variant.versionCode * 100 + abiVersionCode
...
这样,我们将拥有这些 APK:
| ABI | Version Code |
|-----------|--------------|
| universal | v100 |
| arm64-v8a | v101 |
| arm64-v7a | v102 |
| ... | ... |
我们在 APK v101 上遇到了这个“Fully Shadowed APK”错误。原因是arm64-v8a
上的任何设备都可以安装 v102,因为它向后兼容。
将armeabi-v8a
的版本号设置为高于arm64-v7a
后问题解决。
ext.abiCodes = ['universal': 0, 'arm64-v7a': 1, 'armeabi-v8a': 2, 'x86': 3, 'x86_64': 4, ...]
你也应该注意这一点。
【讨论】:
当您也有 X 个支持一个 abi 的拆分 apk 时,您是否能够上传一个支持 X abis 的通用 apk?我必须将无用的 armeabi 包含在我的通用中,但不要对其进行拆分,以便在没有完全阴影错误的情况下包含通用。 @sbaar 是的,这就是我们为发布所做的工作。我们包括通用和拆分 apk。 @sbaar 这是我们 Gradle 文件的更完整版本,不确定是否有帮助:***.com/a/44359115/1035008 我面临同样的错误。试过了,但这个解决方案对我不起作用。 这是救命稻草,非常感谢。我不小心以“正确”的顺序上传了一段时间,然后今天遇到了这些令人困惑的错误。我永远不会想到将 x64 放在 x32 版本之前会导致这些消息(?!?!)【参考方案8】:处理这个问题的简单方法是类似的,
Play 商店似乎有错误
【讨论】:
谢谢,但较旧的 apk 是生产版本。如果我在 alpha 或 beta 轨道中停用它,它会删除生产版本吗?在这里查看问题:***.com/questions/61652630/… @Regis_AG 可以免费使用生产版本并已在商店上线,您的任何测试环境都不会有意或自动影响您当前的生产版本,生产应用程序只会在您有意尝试时删除或更新去做 @KirtikumarA.,如何停用 apk?我没有按钮。出于某种原因,您突出显示的字符串对我来说是“保留了 1 个应用程序包” @EvgeniiVorobei 您应该可以选择停用不需要的 apk @KirtikumarA.,我没有这个选项。没有人这样做,因为每个人的控制台都是一样的。即使在您提供的屏幕截图中,也没有任何按钮。【参考方案9】:问题:
此 APK 将不会提供给任何用户,因为它完全被一个或多个具有更高版本代码的 APK 所掩盖。
分辨率:
从您的版本中删除此 APK,或查看您在此版本中包含的 APK 的定位和版本代码。
我在尝试更新我的应用时遇到了同样的错误。该项目很旧并且在 Eclipse 中,我通过将 targetsdkversion 从 27 降低到 26 来修复它,因为导入的受支持的 android lib 是 Android 7.1.1,我不知道它是如何工作的,但它对我有用。 :D
【讨论】:
对我们来说,目标 SDK 等相同,版本代码更高。然后我们也遇到了这个错误。 您是否仍然收到此错误,如果是,请给我更多详细信息 - 项目在 eclipse 或 studio 中? 那是很久以前的一个客户项目,它已修复,如检查答案中所说。【参考方案10】:在您的发布管理器中,您会看到上次上传的 apk,在您的 apk 上,您会看到 retain 字样,点击它向下滚动页面,然后您会看到停用选项,然后点击然后它再次上传你的新apk n保存草稿并审查它然后推出,然后等待。
【讨论】:
【参考方案11】:Google Play 管理中心肯定存在某种错误。在我们的例子中,我们直接在生产环境中上传了新的 APK。单击“Review”按钮会导致“Fully Shadowed apk”错误消息。
然后,我们对想要发布并作为草稿上传到生产环境的 APK 执行了以下操作:
将其从生产环境中删除。
在 Beta 版中上传,然后将其删除。
在 Alpha 中上传,然后删除。
在生产环境中再次上传。
在最后一步之后,错误消息没有再次出现。目前尚不清楚哪些步骤有助于克服该问题。可能只需删除并再次上传就足够了,但我无法确定,因为我无法再次复制它。
祝你好运!在这种情况下我们都需要它:)
【讨论】:
【参考方案12】:只需从控制台中删除您以前的版本并上传最新版本,它肯定会工作它不会再尝试。
【讨论】:
【参考方案13】:上面写着 - 其他 APK 的版本代码更高。因此,您可能有一个已发布的 APK,其版本代码高于您的新 APK。因此,将您的新 APK 增加到更高的数量。您可以在 android 控制台上查看您的其他 APK 版本代码。并在widget
部分更改您的config.xml
<widget android-versionCode="999" id etc...>
【讨论】:
事实并非如此,问题在于我们保留了较旧版本的 apk,这导致较新的 APK 出现问题。向在 Google Play 团队工作的 Google 员工询问此问题时,他们建议不要保留旧版本的 SDK,除非旧版本与当前版本有一些硬件/软件差异。即它比新的 APK 针对更多/更少的设备。 您的错误表明该版本中的其他 APK 具有更高的版本代码。如果这不是问题,那么发布您的错误错误就没有什么意义了。您必须保留一个 APK,否则只有一个版本,因此只有 1 个版本代码。保留 apk 导致的问题是旧 APK 的版本代码高于新 APK。这就是你的错误所说的。 Google Play 的答案并没有修复错误,只是停止显示,因为只有一个 APK,因此没有更高版本的代码。要么这是答案,要么是谷歌的错误在欺骗你 正如我所说,我与一位 Google 员工交谈,他承认错误消息令人困惑。他告诉我他会记下这个问题和简单的信息,不知道是否完成了。正如您将在许多其他答案中看到的那样,这是 Play 商店方面的错误,而不是应用程序版本问题,如果您看到消息的绿色部分,您将看到 v31 正在上传,但 v30 正在遮蔽它。如果仍有困惑,请告诉我。 您对所选答案的评论是您想要一个解决方案而不是黑客。谷歌员工是否可能不理解错误消息。克里斯托福里弹钢琴不如贝多芬。 不知道,他来自 Play 控制台团队,在 GDD 会议上认识了他。他告诉我的,让我很满意,顺便说一句,新版本的版本号和编号总是更高,我没那么愚蠢。无论如何,现在感觉更像是一场战斗,所以我将不再回复,祝您有美好的一天,感谢您的回答。【参考方案14】:丢弃所有应用程序并上传一个版本代码增加的新应用程序。
【讨论】:
【参考方案15】:这就是这个问题的解决方案。 只需停用旧版本的 apk,您就可以推出新版本。
【讨论】:
谢谢,但较旧的 apk 是生产版本。如果我在 alpha 或 beta 轨道中停用它,它会删除生产版本吗?在这里查看问题:***.com/questions/61652630/…【参考方案16】:我们的案例是我们正在推送两个 APK:一个用于 32 位 arm 和一个 64 位 arm(由于 Google 的新 requirements。每当 arm64-v8a APK 的版本代码小于 armeabi 时,我们都会看到同样的问题-v7a 一个。
因此确保 arm64-v8a 版本具有比 armeabi-v7a 版本更高的versionCode
为我们解决了这个问题。
【讨论】:
【参考方案17】:你必须以这种方式构建才能解决问题
First: armeabi-v7a
Second: x86
Third: arm64-v8a
fourth: x86_64
像这样:
3000467 - armeabi-v7a
3000468 - x86
3000469 - arm64-v8a
3000470 - x86_64
【讨论】:
【参考方案18】:如果您之前在上传表单中保留了已上传 APK 列表下方的任何应用,只需将其停用,然后转到“查看”您的应用即可。因为如果您保留任何应用程序,它不会在上传另一个应用程序后被删除,所以前一个应该在应用程序中列出以停用表。
【讨论】:
谢谢,但较旧的 apk 是生产版本。如果我在 alpha 或 beta 轨道中停用它,它会删除生产版本吗?在这里查看问题:***.com/questions/61652630/…【参考方案19】:我所做的只是更新版本和捆绑代码。我的版本设置为 0.13,我将其更改为 15。我的 Bundle 设置为 13,我将其更改为 15。它让我在这样做后可以正常发布。我正在进行公开测试。
【讨论】:
【参考方案20】:出现问题是因为您必须停用以前版本的应用程序。现在上传新版本时,如果旧版本中有保留选项,则什么也不做,只需执行该过程即可完成但如果旧版本中有停用选项,请单击停用旧版本并立即上传应用程序
【讨论】:
【参考方案21】:只需丢弃当前版本,然后返回创建新版本,然后从您的库中选择 apk 或 aab 文件(哪个 apk 或 aab 版本显示错误),然后保存文件现在您不会收到错误。
【讨论】:
【参考方案22】:对此最快的解决方案是删除通用 apk,仅当您在 2021 年遇到此问题时才会将多个 apk 上传到 playstore。
【讨论】:
以上是关于Google Play - 完全阴影 apk的主要内容,如果未能解决你的问题,请参考以下文章
我可以完全在服务器端验证 Google Play 应用内订阅续订吗?
如何将 Flutter 标签栏指示器更改为与 google play store 完全相同
为什么我的应用程序完全隐藏在Google Play商店应用搜索结果中