12

我一直在尝试添加应用内更新功能,以使用户在 Playstore 中有新更新时更新应用。我正在使用包in_app_update

但它一直抛出这个错误,

I/PlayCore( 8420): UID: [10378]  PID: [8420] AppUpdateService : requestUpdateInfo(com.example.app)
I/PlayCore( 8420): UID: [10378]  PID: [8420] AppUpdateService : Initiate binding to the service.
I/PlayCore( 8420): UID: [10378]  PID: [8420] AppUpdateService : ServiceConnectionImpl.onServiceConnected(ComponentInfo{com.android.vending/com.google.android.finsky.installservice.DevTriggeredUpdateService})
I/PlayCore( 8420): UID: [10378]  PID: [8420] AppUpdateService : linkToDeath
I/PlayCore( 8420): UID: [10378]  PID: [8420] OnRequestInstallCallback : onRequestInfo
I/PlayCore( 8420): UID: [10378]  PID: [8420] AppUpdateService : Unbind from service.
W/JavaBinder( 8420): BinderProxy is being destroyed but the application did not call unlinkToDeath to unlink all of its death recipients beforehand.  Releasing leaked death recipient: com.google.android.play.core.internal.ac

我正在使用的代码是,

try {
  if (Platform.isAndroid) {
    InAppUpdate.checkForUpdate().then((info) {
      setState(() {
        _updateInfo = info;
      });
    }).catchError((error) => print(error));

    if (_updateInfo?.updateAvailable == true) {
      InAppUpdate.performImmediateUpdate()
          .catchError((error) => print(error));
    }
  }
} catch(e) {
    print(e);
}

在使用上述软件包失败数天后,我尝试使用另一个名为native_updater的软件包。这个包也导致了同样的错误。尽管我遵循了他们的榜样,但这应该行得通。

的输出flutter doctor是,

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 1.22.0-10.0.pre.121, on Linux, locale en_US.UTF-8)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)


我找不到任何类似的问题或答案,这就是为什么必须发布一个。

我正在使用 64 位 Kali Linux 机器。

4

2 回答 2

8

一开始我和你有同样的问题。但我注意到了一些事情,该应用程序必须从 Play 商店下载,并且还必须有可用的更新。如果您通过从 Flutter 或 vscode 启动应用程序来执行此操作,则它不起作用是正常的。不知道我是不是很清楚。

请注意,此插件无法在本地测试。它必须通过 Google Play 安装才能工作。请查看来自 Google 的有关应用内更新的官方文档。

于 2020-09-24T10:52:15.977 回答
1

确保 4 件事,这样您就可以测试您的 in_app_update 功能:

  • 您之前的应用版本代码必须小于未来的应用版本代码
  • PlayStore 应在测试前清除缓存
  • 以前的应用程序版本,较新的应用程序版本必须从内部应用程序共享安装。(你可以参考这个链接
  • 您登录 PlayStore 的电子邮件必须添加到内部测试人员

祝你好运,兄弟!

于 2021-08-17T14:46:04.663 回答