Android 应用内更新 API 将 0 作为 availableVersionCode 和 updateAvailability 作为 1 (UPDATE_NOT_AVAILABLE) 返回

Moo*_*thy 4 android google-play google-play-services google-play-developer-api android-app-bundle

我正在尝试实现应用内更新 API,然后是in-app-update-api,在调试版本低于 Play 商店版本的应用时,AppUpdateInfo返回availableVersionCodeas0updateAvailabilityas 1 (UPDATE_NOT_AVAILABLE),注意:我使用了相同的包名称 &运行构建的相同签名密钥

提前致谢!

小智 5

最可能的原因是您设备上的 Play 商店尚未了解新更新。

在 Play 开发者控制台中发布更新后,有关此更新的信息不会立即到达所有设备;设备上的某些 Play 商店后台作业负责定期检查已安装应用程序的更新并刷新设备上缓存的信息。

“但我现在想在我的设备上测试行为,我不想等待后台作业完成才能测试。我可以强制刷新此缓存吗?”

是的,请查看此处故障排除部分的最后一项:https : //developer.android.com/guide/app-bundle/in-app-updates#troubleshoot 要刷新缓存,您需要:关闭 Play 商店; 重新打开它;导航到“我的应用和游戏”应用。

“我的用户也需要这样做吗?”

否:您的用户可以等待后台作业运行。


小智 -2

我也遇到了完全相同的问题,并且解决了。您应该检查要传递什么类型的上下文来创建AppUpdateManager。似乎您在创建 AppUpdateManager 时需要传递全局应用程序上下文

因此,如果您只是传递“this”或其他一些活动上下文,请将其更改为“Global App Context”。

AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);
Run Code Online (Sandbox Code Playgroud)

AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

根据文档上下文是您的应用程序的应用程序上下文

在此输入图像描述