Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android inApp更新始终显示更新不可用和证书不匹配警告_Android_Google Play_In App Update - Fatal编程技术网

Android inApp更新始终显示更新不可用和证书不匹配警告

Android inApp更新始终显示更新不可用和证书不匹配警告,android,google-play,in-app-update,Android,Google Play,In App Update,我有一个发布在play store上的android应用程序。我正在尝试实现应用程序内更新,并使用android内部曲目共享进行测试 为了在内部轨道上分享,我试着跟随,所有的一切都给了我同样的结果。 1.创建了Apk。使用应用程序的发布密钥签名 2.创建了aap包。使用应用程序的发布密钥签名 3.创建了Apk。在没有签名的情况下将其保持在调试模式 4.创建了aap包。在没有签名的情况下将其保持在调试模式 在上述所有场景中,在将应用程序上载到内部测试轨道并从url下载后,会注意到以下一致行为 应用

我有一个发布在play store上的android应用程序。我正在尝试实现应用程序内更新,并使用android内部曲目共享进行测试

为了在内部轨道上分享,我试着跟随,所有的一切都给了我同样的结果。 1.创建了Apk。使用应用程序的发布密钥签名 2.创建了aap包。使用应用程序的发布密钥签名 3.创建了Apk。在没有签名的情况下将其保持在调试模式 4.创建了aap包。在没有签名的情况下将其保持在调试模式

在上述所有场景中,在将应用程序上载到内部测试轨道并从url下载后,会注意到以下一致行为

  • 应用程序启动时调用appUpdateInfoTask.addOnSuccessListener
  • appUpdateInfo.availableVersionCode()返回内部测试跟踪应用程序的版本代码,而不是生产中可用的更新
  • updateAvailability()返回更新不可用
  • 在logcat中,我们得到了以下关注点日志

    (应用程序包名称)已安装,但证书不匹配

    我的应用程序更新代码如下

        private void checkforappupdate() {
    
            Log.v("oneteamlive",".........checking for application update....");
            // Creates instance of the manager.
            AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(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.s
            appUpdateInfoTask.addOnSuccessListener(
                    appUpdateInfo -> {
                        Log.v("oneteamlive","in app update info listenere");
                        Log.v("oneteamlive","Available version code is:"+appUpdateInfo.availableVersionCode());
                        Log.v("oneteamlive","Available version code is:"+appUpdateInfo.updateAvailability());
                if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE)
                         {
                    // Request the update.
                             Log.v("oneteamlive","A new update is available");
                             Toast.makeText(this,"A new update is available",Toast.LENGTH_LONG).show();
                }
                else
                {
                    Log.v("oneteamlive","no app update is available");
                }
            });
        }
    
    private void checkforappupdate(){
    Log.v(“oneteamlive”,“检查应用程序更新…”);
    //创建管理器的实例。
    AppUpdateManager AppUpdateManager=AppUpdateManager工厂。创建(此);
    //返回用于检查更新的意图对象。
    Task AppUpdateInfo任务=appUpdateManager.getAppUpdateInfo();
    //检查平台是否允许指定类型的更新
    appUpdateInfoTask.addOnSuccessListener(
    appUpdateInfo->{
    Log.v(“oneteamlive”、“应用程序内更新信息监听器”);
    Log.v(“oneteamlive”,“可用版本代码为:”+appUpdateInfo.availableVersionCode());
    Log.v(“oneteamlive”,“可用版本代码为:”+appUpdateInfo.updateAvailability());
    if(appUpdateInfo.updateAvailability()==updateAvailability.UPDATE\u可用)
    {
    //请求更新。
    Log.v(“oneteamlive”,“有新的更新可用”);
    Toast.makeText(这是“有新的更新可用”,Toast.LENGTH_LONG.show();
    }
    其他的
    {
    Log.v(“oneteamlive”,“没有可用的应用程序更新”);
    }
    });
    }
    
    我已经仔细检查了我的playstore是否完全关闭,是否可以在playstore上使用更高版本的代码进行更新


    其他人也面临着类似的问题吗?

    我也有同样的问题,我想知道这是否是因为谷歌辞去了内部测试轨道的应用程序。显然,内部共享的应用程序正基于以下原因被放弃: 但对于内部测试跟踪,当我下载应用程序时,我可以看到公共证书与我上传到google play store之前创建的apk完全匹配