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

在.NET MAUI(C#)中实现Android应用内更新时遇到ERROR_API_NOT_AVAILABLE错误

在.NET MAUI(C#)中实现Android应用内更新时遇到ERROR_API_NOT_AVAILABLE错误

嘿,我看你在用Xamarin.Google.Android.Play.Core库做Android应用内更新的时候,碰到了ERROR_API_NOT_AVAILABLE(错误码-3)的问题,导致更新弹窗出不来,task.IsSuccessful还一直是false。结合你描述的测试场景和代码,我整理了几个可能的原因和解决办法,你可以挨个排查试试:

  • 设备/系统不满足API要求
    应用内更新API对设备环境有硬性要求:

    • 设备必须安装Google Play商店应用,而且版本得足够新(至少16.0.0以上,最好更到最新版);
    • 系统版本得是Android 5.0(API 21)及以上;
    • 最重要的是,设备得完整安装Google移动服务(GMS),国内有些定制系统没有预装GMS,或者GMS不完整,就会直接触发这个错误。
      你可以先检查测试设备的Play商店版本,或者在设置里看看GMS服务是否正常运行,必要时更新Play商店到最新版。
  • Internal App Sharing的测试流程有问题
    用Internal App Sharing测更新的时候,步骤不能太急:
    当你打开2.0版本的分享链接后,别直接切回1.0的应用,先让Google Play商店识别到有可用更新——哪怕你不点击安装,也要等Play商店加载出“更新”按钮,确保它同步到了新版本的信息。另外,Internal App Sharing的更新检测可能有延迟,你可以等个几分钟,或者去Play商店的「我的应用和游戏」页面下拉刷新一下更新状态,再回到旧应用测试。

  • 库版本或项目配置的坑
    你用的是Xamarin.Google.Android.Play.Core 1.10.3.15版本,虽然不算特别旧,但可以试试升级到最新稳定版,有时候旧库和某些设备的Play服务会有兼容性问题。另外,记得检查你的Android项目目标SDK版本,建议设为API 33或更高,同时确保AndroidManifest.xml里没有禁用任何和Play服务相关的组件。

  • 代码里可以优化的地方
    看你的代码,获取AppUpdateInfo的方式可以调整一下,避免类型转换出错:

    var appUpdateInfo = task.Result.JavaCast<AppUpdateInfo>();
    

    另外,建议在启动更新流之前加个异常捕获,这样能拿到更具体的错误信息:

    if (appUpdateInfo.UpdateAvailability() == UpdateAvailability.UpdateAvailable && appUpdateInfo.IsUpdateTypeAllowed(AppUpdateType.Immediate))
    {
        try
        {
            appUpdateManager.StartUpdateFlowForResult(
                        appUpdateInfo,
                        AppUpdateType.Immediate,
                        this,
                        123);
        }
        catch (Java.Lang.Exception ex)
        {
            System.Diagnostics.Debug.WriteLine($"启动更新失败:{ex.Message}");
        }
    }
    
  • 模拟器测试的限制
    如果是用模拟器测试,一定要选带Google Play的系统镜像(比如「Google Play Intel x86 Atom_64」这种),而且要登录Google账号。普通的模拟器镜像没有完整的GMS服务,肯定会触发这个错误。

先从设备环境和测试流程入手排查,这些是最常见的原因,希望能帮你解决问题!

备注:内容来源于stack exchange,提问作者Meghna Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 10:48:00