You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Upgrader库遇Bad state异常,无法显示UpgradeAlert求解决

解决upgrader包的Bad state: No element异常问题

这个错误是因为upgrader在解析Google Play商店的应用版本信息时,找不到预期的页面元素导致的,常见原因包括应用未上架Play商店、地区限制、Play商店页面结构更新等。以下是几种可行的解决方案:

1. 确认应用的Play商店状态

  • 确保目标应用已成功上架Google Play,且测试设备所在地区可正常访问该应用的商店页面。
  • 如果应用处于内测、未发布状态,upgrader无法从公开的Play商店页面获取版本信息,会触发该异常。

2. 自定义版本检查逻辑

绕过Play商店的页面解析,手动指定版本信息,示例代码如下:

import 'package:flutter/material.dart';
import 'package:upgrader/upgrader.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Upgrader.clearSavedSettings(); // 发布版本请移除该行

  // 自定义版本检查配置
  final customUpgrader = Upgrader(
    minAppVersion: '1.1.0', // 手动设置最低要求版本
    dialogTitle: '发现新版本',
    dialogMessage: '更新到最新版本可获得更多功能',
    debugLogging: true,
  );

  runApp(MyApp(upgrader: customUpgrader));
}

class MyApp extends StatelessWidget {
  final Upgrader upgrader;
  const MyApp({Key? key, required this.upgrader}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Upgrader Example',
      home: UpgradeAlert(
        upgrader: upgrader,
        child: Scaffold(
          appBar: AppBar(title: const Text('Upgrader Example')),
          body: const Center(child: Text('Checking...')),
        ),
      ),
    );
  }
}

3. 捕获异常并降级处理

通过自定义UpgradeChecker捕获解析异常,保证UpgradeAlert能正常显示:

class SafeUpgradeChecker extends UpgradeChecker {
  @override
  Future<UpgraderInfo?> getUpgraderInfo() async {
    try {
      // 尝试默认的Play商店检查逻辑
      return await super.getUpgraderInfo();
    } catch (e) {
      // 异常时返回默认信息,避免弹窗不加载
      return UpgraderInfo(
        currentVersion: '1.0.0',
        minimumVersion: '1.0.0',
        appStoreURL: '',
        releaseNotes: '',
      );
    }
  }
}

// 使用自定义Checker
final upgrader = Upgrader(
  upgradeChecker: SafeUpgradeChecker(),
);

4. 升级upgrader到最新版本

旧版本的upgrader可能对Google Play页面结构的变化兼容不足,执行flutter pub upgrade upgrader升级到最新版本,大概率能修复解析异常问题。

内容的提问来源于stack exchange,提问作者ankith bangera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 05:33:24