2017-05-07 77 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