谷歌应用程序更新-关于Android Live应用程序的即时更新

谷歌应用程序更新-关于Android Live应用程序的即时更新,android,in-app-update,app-update,google-play-core,Android,In App Update,App Update,Google Play Core,我下面的链接是为了在我的android live应用程序中提供应用程序更新体验或功能 链接如下: 从链接内容来看,我正在实施即时应用程序更新功能 到目前为止,我已经完成了以下步骤: 降级了我的应用程序版本和版本代码 生成新版本的APK,并将其安装到我的Android设备中 在我的Splash活动中添加了以下应用程序更新功能代码 执行以下代码: 首先添加了依赖项:implementation'com.google.android.play:core:1.7.1' 然后,在飞溅活动中

我下面的链接是为了在我的android live应用程序中提供应用程序更新体验或功能

链接如下:

从链接内容来看,我正在实施即时应用程序更新功能

到目前为止,我已经完成了以下步骤:

  • 降级了我的应用程序版本和版本代码
  • 生成新版本的APK,并将其安装到我的Android设备中
  • 在我的Splash活动中添加了以下应用程序更新功能代码
  • 执行以下代码:

    首先添加了依赖项:
    implementation'com.google.android.play:core:1.7.1'

    然后,在飞溅活动中

            // Creates instance of the manager.
            final AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(SplashActivity.this);
    
            // Returns an intent object that you use to check for an update.
            Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
    
            // Checks that the platform will allow the specified type of update.
            appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
                @Override
                public void onSuccess(AppUpdateInfo appUpdateInfo) {
                    if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                            // For a flexible update, use AppUpdateType.FLEXIBLE
                            && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
                        // Request the update.
                        try {
                            appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, SplashActivity.this,500);
                        } catch (IntentSender.SendIntentException e) {
                            e.printStackTrace();
                        }
                    }else
                    {
                      //Continuing with the Application flow
                    }
                 }
    
    //创建管理器的实例。
    最终的AppUpdateManager AppUpdateManager=AppUpdateManager工厂.create(SplashActivity.this);
    //返回用于检查更新的意图对象。
    Task AppUpdateInfo任务=appUpdateManager.getAppUpdateInfo();
    //检查平台是否允许指定类型的更新。
    AppUpdateInfo.addOnSuccessListener(新的OnSuccessListener(){
    @凌驾
    成功时公共无效(AppUpdateInfo AppUpdateInfo){
    如果(appUpdateInfo.updateAvailability()==updateAvailability.UPDATE\u可用
    //对于灵活的更新,请使用AppUpdateType.flexible
    &&appUpdateInfo.IsUpdateType允许(AppUpdateType.IMMEDIATE)){
    //请求更新。
    试一试{
    appUpdateManager.startUpdateFlowForResult(appUpdateInfo、AppUpdateType.IMMEDIATE、SplashActivity.this,500);
    }catch(IntentSender.sendtintentexe){
    e、 printStackTrace();
    }
    }否则
    {
    //继续应用程序流
    }
    }
    
    问题是:当我生成签名的APK并安装在我的android设备上时

    在日志中获取以下错误:

     Auth: [GoogleAccountDataServiceImpl] getToken() -> BAD_AUTHENTICATION. Account: <ELLIDED:9494777414>, App: com.google.android.gms, Service: oauth2:https://www.googleapis.com/auth/emeraldsea.mobileapps.doritos.cookie
    
    Auth:[GoogleAccountDataServiceImpl]getToken()->错误的身份验证。帐户:,应用程序:com.google.android.gms,服务:oauth2:https://www.googleapis.com/auth/emeraldsea.mobileapps.doritos.cookie
    
    可能是什么问题?

    找到了解决方案:

    测试应用程序更新功能时:

  • 您已安装的应用程序版本和版本代码必须小于Play Store上的live应用程序版本和版本代码

  • 在真实的Android设备上测试它,而不是AVD或模拟器

  • 问题中的代码是正确的,但必须在onActivityResult方法中处理回调。

  • 来自谷歌

    通过内部应用程序共享,您可以通过将要测试的应用程序包上载到Play Console,快速与您的内部团队和测试人员共享应用程序包或APK

    您还可以使用内部应用程序共享来测试应用程序内更新,如下所示:

    在测试设备上,确保已安装符合以下要求的应用程序版本:

    应用程序是使用内部应用程序共享URL安装的 支持应用内更新 使用的版本代码低于应用程序的更新版本 按照Play Console说明在内部共享应用程序。请确保上载的应用程序版本使用的版本代码高于测试设备上已安装的版本代码。 在测试设备上,仅单击应用程序更新版本的内部应用程序共享链接。不要从单击链接后看到的Google Play Store页面安装应用程序

    从设备的应用程序抽屉或主屏幕打开应用程序。您的应用程序现在应该可以使用更新,您可以测试应用程序内更新的实现


    仅此而已。

    您需要提供crash stacktrace.。为什么要否决投票?@ADM。