繁体   English   中英

重新初始化twitter-fabric

[英]ReInitialize twitter-fabric

在MainActivity中,我使用CrashLytic

 @Override
    protected void onCreate(Bundle savedInstanceState) {

     if (!newUser){
           if (!Fabric.isInitialized()) 
                    Fabric.with(context, new Crashlytics());
     } else {

        goToRegistrationFrame();

     }        
   }

当用户尝试还原其帐户并且我尝试重新加载应用程序时,我通过此代码切换了Fragment

Intent i = getActivity().getBaseContext().getPackageManager()
                        .getLaunchIntentForPackage(getActivity().getBaseContext().getPackageName());
                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(i);

重新加载应用程序后,它从我使用Digits的注册片段开始,并设置了新的Fabric参数

Fabric.with(getActivity(), new TwitterCore(authConfig),
                new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build());

但是不幸的是,我看到Fabric.isInitialized()为TRUE,因此当我调用时:

Digits.authenticate(authConfigBuilder.build());

我有这个例外:

java.lang.NullPointerException: Attempt to invoke virtual method 'com.digits.sdk.android.AuthClient com.digits.sdk.android.Digits.getAuthClient()' on a null object reference

我的问题是:

  1. 如何重新初始化Fabric,我知道问题在于Fabric是在设置之前设置的,而不是在重新加载应用程序后清除的。

  2. 或者,当我切换到新的Fragment时,如何重新加载应用程序以获得相同的结果,并且未初始化Fabric。

谢谢

我发现只有一种方法,可以通过此决定重新加载应用程序https://github.com/JakeWharton/ProcessPhoenix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM