当我使用hockeyapp通过UpdateManager更新应用程序时,应用程序崩溃了

时间:2017-07-25 10:45:36

标签: android crash hockeyapp

当我通过hockeyapp UpdateManager更新应用程序时,我的Android应用程序崩溃了。

这是我的更新代码:

private void checkForUpdates() {
        // Remove this for store builds!
        UpdateManager.register(this, getResources().getString(R.string.hockey_app_id), new UpdateManagerListener() {
            @Override
            public void onNoUpdateAvailable() {
                super.onNoUpdateAvailable();

                // no update is available ->  load login screen
//                setFragment(R.id.container_login, new LoginFragment());
            }

            @Override
            public void onUpdateAvailable(JSONArray data, String url) {
                super.onUpdateAvailable(data, url);
            }
        }, true);
    }

它显示更新对话框但是当我点击更新然后100%加载应用程序崩溃。这是崩溃日志:

  

onFatalError,来自引擎的处理错误(4)                                                                                                  com.google.android.apps.gsa.shared.speech.a.g:读取错误   输入流                                                                                                      在   com.google.android.apps.gsa.staticplugins.recognizer.i.a.a(的SourceFile:342)

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我刚刚通过搜索hockeyApp的不同文档解决了这个问题。 以下是上述问题的解决方案:

检查更新方法:

private void checkForUpdates() {

        StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
        StrictMode.setVmPolicy(builder.build());

        UpdateManager.register(this, getResources().getString(R.string.hockey_app_id), new UpdateManagerListener() {
            @Override
            public void onNoUpdateAvailable() {
                super.onNoUpdateAvailable();

                // no update is available ->  load login screen
//                setFragment(R.id.container_login, new LoginFragment());
            }

            @Override
            public void onUpdateAvailable(JSONArray data, String url) {
                super.onUpdateAvailable(data, url);
            }
        }, true);
    }

还需要在活动onPause()或onDestroy()方法中取消注册Updatemanager。

private void unregisterManagers() {
        UpdateManager.unregister();
    }

    @Override
    public void onPause() {
        super.onPause();
        unregisterManagers();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        unregisterManagers();
    }

这是hockeyApp在应用更新功能中的完整解决方案。