由于目标 api23,无法更新商店中的应用程序(无法降级)

Posted

技术标签:

【中文标题】由于目标 api23,无法更新商店中的应用程序(无法降级)【英文标题】:Can't update app in store because of target api23 (no downgrade possible) 【发布时间】:2016-08-29 22:15:52 【问题描述】:

长话短说:

我在商店里有一个应用,使用 target(!) api23 上传 现在我必须使用 metaio SDK(增强现实)来实现一个功能 此 SDK 不再维护(公司被苹果收购并关闭) metaio SDK 在使用目标 api23 时崩溃 ...由于 ffmpeg 库中的文本重定位,在 libavcodec.so 中,另请参阅: libavcodec.so: has text relocations http://rg4.net/archives/1973.html https://github.com/wseemann/FFmpegMediaPlayer/issues/64

问题:

使用目标 api23 上传一次的应用,无法使用较低的目标 api 进行更新 metaio 无法处理 api23,由于文本重定位错误

目前的想法:

用较新的版本替换旧的 libavcodec.so (arm & x86), 但我找不到任何编译版本...

PS:确定它是转储使用已弃用的 sdk 并且必须在将来的某个时间更换它,但现在我必须使用它,因为项目中使用了巨大的内容和后端部分.

PPS:最坏的想法是在 GooglePlay 中上传相同的应用,但具有不同的 ID、api22 和 AR 功能......并且有两个几乎相同的应用...... <_>

非常感谢您的每一次帮助! :)

【问题讨论】:

如您所述,您是否尝试过重新编译 FFmpeg 并使用 disable-asm 标志放入更新的二进制文件? 【参考方案1】:

短期解决方案

使用if(Build.VERSION.SDK_INT &lt; Build.VERSION_CODES.M) 包装对库的每次调用。这将禁用依赖于库的所有功能。在这种情况下,您可能应该通知 API 23 设备的用户。

长期解决方案

寻找替代品。如果你有一个不再维护的依赖,它已经与当前版本不兼容,它只会变得更糟。

【讨论】:

我已经有了同样的想法 =/ ...但在这种情况下,我的 6.x 用户无法使用 AR 功能...当然...长期替换它是必须的.​​.. =/【参考方案2】:

您可以使用更新的版本代码发布旧版本的应用程序。 https://***.com/a/19164218/3789575

【讨论】:

即使是第一个版本的应用也有api23,所以我不能使用旧版本。上传新的 APK 总是迫使我拥有更高的 versionCode 和至少相同的 target-api。 你想告诉我什么?如前所述,设置为目标 api23 会使 sdk 崩溃。将目标设置为 api22 导致无法更新应用... 我提供了一个链接,它描述了为什么无法降级 targetSdkVersion。 我知道原因,但不幸的是我需要以某种方式解决...也许修补.so文件或...

以上是关于由于目标 api23,无法更新商店中的应用程序(无法降级)的主要内容,如果未能解决你的问题,请参考以下文章

应用商店审核中的 IAP 错误,无法重现

在Play商店中推送特定版本的android的更新

定位 API 28 更新

由于运行时问题,Google Maps API 无法在 API 23 以上运行

2 年后更新的 Android 应用程序,无法让它出现在商店中

无法使用 Play 商店中的 Beta 测试进行自动更新