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

Play Core 1.10.3适配Android14报错:AppUpdateManager替换方案咨询

解决Play Core依赖升级与应用更新代码适配问题

第一步:修正依赖配置

你之前引入的review和asset-delivery模块对应应用评分和资源交付功能,应用更新功能需要单独引入app-update模块,同时必须移除旧的com.google.android.play:core依赖。在Module级别的build.gradle中调整依赖如下:

// 移除旧的 com.google.android.play:core:1.10.3
implementation 'com.google.android.play:app-update:2.1.0' // 适配Android14的稳定版
// 保留需要的其他Play Core模块
implementation 'com.google.android.play:review:2.0.1'
implementation 'com.google.android.play:asset-delivery:2.2.2'

第二步:替换代码中的旧组件

1. 更新AppUpdateManager初始化方式

旧的初始化逻辑不变,但需确保导入的是app-update模块下的类:

// 新初始化方式(包名仍为com.google.android.play.core.appupdate.AppUpdateManager)
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(context);

2. 替换弃用的更新启动方法

旧的startUpdateFlowForResult已被废弃,改用startUpdateFlow并调整参数结构:

// 旧代码(已废弃)
appUpdateManager.startUpdateFlowForResult(
        appUpdateInfo,
        IMMEDIATE,
        Splash.this,
        MY_REQUEST_CODE);

// 新代码
appUpdateManager.startUpdateFlow(
        new AppUpdateOptions.Builder(AppUpdateType.IMMEDIATE)
                .setRequestCode(MY_REQUEST_CODE)
                .build(),
        Splash.this);

需导入com.google.android.play.core.appupdate.AppUpdateType类,用AppUpdateType.IMMEDIATE替代原有的IMMEDIATE常量。

3. 完整适配后的onResume代码

调整包导入并替换旧API调用,最终代码如下:

import com.google.android.play.core.appupdate.AppUpdateInfo;
import com.google.android.play.core.appupdate.AppUpdateManager;
import com.google.android.play.core.appupdate.AppUpdateManagerFactory;
import com.google.android.play.core.appupdate.AppUpdateOptions;
import com.google.android.play.core.appupdate.AppUpdateType;
import com.google.android.play.core.appupdate.UpdateAvailability;
import com.google.android.play.core.tasks.OnSuccessListener;

@Override
protected void onResume() {
    super.onResume();

    if ("critical".equals(appupdateType) && !Objects.equals(myAppVersion, playStoreVersion)) {
        appUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
            @Override
            public void onSuccess(AppUpdateInfo appUpdateInfo) {
                // 恢复正在进行的强制更新
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                    try {
                        appUpdateManager.startUpdateFlow(
                                new AppUpdateOptions.Builder(AppUpdateType.IMMEDIATE)
                                        .setRequestCode(MY_REQUEST_CODE)
                                        .build(),
                                Splash.this);
                    } catch (IntentSender.SendIntentException e) {
                        Log.e("error on resume", Objects.requireNonNull(e.getMessage()));
                    }
                }
                // 完成已下载的更新
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.UNKNOWN) {
                    popupSnackbarForCompleteUpdate();
                    appUpdateManager.completeUpdate();
                }
            }
        });
    } else if ("flexible".equals(appupdateType) && !Objects.equals(myAppVersion, playStoreVersion)) {
        appUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
            @Override
            public void onSuccess(AppUpdateInfo appUpdateInfo) {
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.UNKNOWN) {
                    popupSnackbarForCompleteUpdate();
                    appUpdateManager.completeUpdate();
                }
            }
        });
    }
}

第三步:Android14适配额外注意事项

  • 确保build.gradle中targetSdkVersion设为34,compileSdkVersion建议同步升级到34。
  • 测试时需保证设备上的Play Store应用为最新版本,否则可能出现更新检测失效的情况。

内容的提问来源于stack exchange,提问作者Raman Mishra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:50:01