代码之家  ›  专栏  ›  技术社区  ›  Furqan

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

  •  0
  • Furqan  · 技术社区  · 7 年前

    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);
        }
    

    com.google.android.apps.gsa.shared.speech.a.g:读取错误 输入流 在 com.google.android.apps.gsa.staticplugins.recognizer.i.a.a(源文件:342)

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Furqan    7 年前

    我只是通过搜索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);
        }
    

    还需要在activity onPause()或onDestroy()方法中注销Updatemanager。

    private void unregisterManagers() {
            UpdateManager.unregister();
        }
    
        @Override
        public void onPause() {
            super.onPause();
            unregisterManagers();
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            unregisterManagers();
        }