2017-05-07 41 views
0

我试图登录捕获的异常如docCrashlytics.getInstance()返回null记录的自定义异常

建议在我的活动之一:

@Override 
public void failure(RetrofitError error) {            
    Crashlytics.getInstance().core.log(error.getMessage()); 
    Crashlytics.getInstance().core.logException(error.getCause()); 
} 

但是,这又导致了致命例外面料仪表板:

致命异常:显示java.lang.NullPointerException 试图从外地“读com.crashlytics.android.core.CrashlyticsCo再上一个空对象引用

我在AndroidApplication初始化面料com.crashlytics.android.Crashlytics.core”:

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build(); 
Fabric.with(this, new Answers(), new Beta(), core, new TwitterCore(authConfig), new Digits.Builder().build()); 

我是否需要初始化面料上,我需要自定义每个活动日志记录?

+0

麦克在这里。初始化onCreate中的Fabric应该是你需要做的。在Fabric完全初始化之前,您是否在Retrofit Error中记录任何这些日志? –

+0

@MikeBonnell在初始化应用程序后没有发生这种情况 – emaillenin

回答

1

我在我的应用程序中有类似的设置。我初始化Crashlytics像这样:

Crashlytics crashlyticsKit = new Crashlytics.Builder() 
      .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()) 
      .build(); 

    Fabric.with(this, crashlyticsKit); 

但是我只是使用Crashlytics登录方法,像这样:

从面料
if (!BuildConfig.DEBUG) { 
    Crashlytics.log(message); 
} 
+0

我的错误来自于生产环境,所以'!BuildConfig.DEBUG'检查不会解决问题。 'Crashlytics.getInstance()'仍然会返回空值 – emaillenin

+0

不知道为什么如果你的应用程序子类在清单文件中被注册为什么它将为空。如果你只是使用Crashlytics.log(消息)方法,它仍然会崩溃? – joelreeves