2017-10-24 3 views
1

私はACRAのAndroidアプリからクラッシュレポートを送信していますが、すべて正常に機能します。スタックトレースが巨大であるという事実を除いて。たとえば、レポートには、およそ30000文字を含めることができますし、次のようになります。ACRAでスタックトレースを減らす方法は?

{ 
    "REPORT_ID": "bb7cef15-ffc0-4e58-ada2-0472a5c02939", 
    "APP_VERSION_CODE": 1, 
    "APP_VERSION_NAME": 1.8, 
    "PHONE_MODEL": "Nexus 5", 
    "ANDROID_VERSION": "6.0.1", 
    "STACK_TRACE": "io.reactivex.exceptions.CompositeException: 2 exceptions occurred. \n\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:148)\n\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\n ComposedException 1 :\n\tandroid.nfc.TagLostException: Tag was lost.\n\t\tat android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48)\n\t\tat android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)\n\t\tat android.nfc.tech.IsoDep.transceive(IsoDep.java:172)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommand(BalancePresenter.java:119)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommandToCard(BalancePresenter.java:101)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.getNextUrlObservable(BalancePresenter.java:77)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.lambda$getFares$3$BalancePresenter(BalancePresenter.java:49)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter$$Lambda$3.apply(Unknown Source)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:121)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\t\tat io.reactivex.internal.observers.DisposableLambdaObserver.onNext(DisposableLambdaObserver.java:58)\n\t\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)\n\t\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)\n\t\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)\n\t\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)\n\t\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\t\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)\n\t\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)\n\t\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)\n\t\tat java.lang.Thread.run(Thread.java:818)\n\tCaused by: java.lang.RuntimeException: Duplicate found in causal chain so cropping to prevent loop ...\n\t\tat android.util.Log.getStackTraceString(Log.java:338)\n\t\tat android.util.Log.e(Log.java:243)\n\t\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\t\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\t\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\t\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\t\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\t\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\t\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\t\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\t\tat android.os.Handler.handleCallback(Handler.java:739)\n\t\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\t\tat android.os.Looper.loop(Looper.java:148)\n\t\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\t\tat java.lang.reflect.Method.invoke(Native Method)\n\t\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\t\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\n ComposedException 2 :\n\tjava.lang.Exception: android.nfc.TagLostException: Tag was lost.\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.lambda$getFares$14$BalancePresenter(BalancePresenter.java:69)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter$$Lambda$14.accept(Unknown Source)\n\t\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:74)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\t\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\t\tat android.os.Handler.handleCallback(Handler.java:739)\n\t\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\t\tat android.os.Looper.loop(Looper.java:148)\n\t\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\t\tat java.lang.reflect.Method.invoke(Native Method)\n\t\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\t\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\n\tCaused by: android.nfc.TagLostException: Tag was lost.\n\t\tat android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48)\n\t\tat android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)\n\t\tat android.nfc.tech.IsoDep.transceive(IsoDep.java:172)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommand(BalancePresenter.java:119)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommandToCard(BalancePresenter.java:101)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.getNextUrlObservable(BalancePresenter.java:77)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter.lambda$getFares$3$BalancePresenter(BalancePresenter.java:49)\n\t\tat com.icard.ui.card.content.balance.impl.BalancePresenter$$Lambda$3.apply(Unknown Source)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:121)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\t\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\t\tat io.reactivex.internal.observers.DisposableLambdaObserver.onNext(DisposableLambdaObserver.java:58)\n\t\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\t\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\t\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\t\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)\n\t\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)\n\t\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)\n\t\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)\n\t\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\t\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)\n\t\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)\n\t\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)\n\t\tat java.lang.Thread.run(Thread.java:818)\n\tCaused by: java.lang.RuntimeException: Duplicate found in causal chain so cropping to prevent loop ...\n\t\tat android.util.Log.getStackTraceString(Log.java:338)\n\t\tat android.util.Log.e(Log.java:243)\n\t\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\t\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\t\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\t\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\t\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\t\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\t\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\t\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\t\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\t\tat android.os.Handler.handleCallback(Handler.java:739)\n\t\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\t\tat android.os.Looper.loop(Looper.java:148)\n\t\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\t\tat java.lang.reflect.Method.invoke(Native Method)\n\t\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\t\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\n\nio.reactivex.exceptions.CompositeException$CompositeExceptionCausalChain: Chain of Causes for CompositeException In Order Received =>\n\tat android.util.Log.getStackTraceString(Log.java:338)\n\tat android.util.Log.e(Log.java:243)\n\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:148)\n\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\nCaused by: android.nfc.TagLostException: Tag was lost.\n\tat android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48)\n\tat android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)\n\tat android.nfc.tech.IsoDep.transceive(IsoDep.java:172)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommand(BalancePresenter.java:119)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommandToCard(BalancePresenter.java:101)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.getNextUrlObservable(BalancePresenter.java:77)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.lambda$getFares$3$BalancePresenter(BalancePresenter.java:49)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter$$Lambda$3.apply(Unknown Source)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:121)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\tat io.reactivex.internal.observers.DisposableLambdaObserver.onNext(DisposableLambdaObserver.java:58)\n\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)\n\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)\n\tat java.lang.Thread.run(Thread.java:818)\nCaused by: java.lang.RuntimeException: Duplicate found in causal chain so cropping to prevent loop ...\n\tat android.util.Log.getStackTraceString(Log.java:338)\n\tat android.util.Log.e(Log.java:243)\n\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:148)\n\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\nandroid.nfc.TagLostException: Tag was lost.\n\tat android.nfc.TransceiveResult.getResponseOrThrow(TransceiveResult.java:48)\n\tat android.nfc.tech.BasicTagTechnology.transceive(BasicTagTechnology.java:151)\n\tat android.nfc.tech.IsoDep.transceive(IsoDep.java:172)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommand(BalancePresenter.java:119)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.transferCommandToCard(BalancePresenter.java:101)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.getNextUrlObservable(BalancePresenter.java:77)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter.lambda$getFares$3$BalancePresenter(BalancePresenter.java:49)\n\tat com.icard.ui.card.content.balance.impl.BalancePresenter$$Lambda$3.apply(Unknown Source)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:121)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.tryEmit(ObservableFlatMap.java:262)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$InnerObserver.onNext(ObservableFlatMap.java:559)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.subscribeInner(ObservableFlatMap.java:162)\n\tat io.reactivex.internal.operators.observable.ObservableFlatMap$MergeObserver.onNext(ObservableFlatMap.java:139)\n\tat io.reactivex.internal.observers.DisposableLambdaObserver.onNext(DisposableLambdaObserver.java:58)\n\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeOnObserver.onNext(ObservableSubscribeOn.java:58)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:51)\n\tat retrofit2.adapter.rxjava2.BodyObservable$BodyObserver.onNext(BodyObservable.java:37)\n\tat retrofit2.adapter.rxjava2.CallExecuteObservable.subscribeActual(CallExecuteObservable.java:43)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat retrofit2.adapter.rxjava2.BodyObservable.subscribeActual(BodyObservable.java:34)\n\tat io.reactivex.Observable.subscribe(Observable.java:10842)\n\tat io.reactivex.internal.operators.observable.ObservableSubscribeOn$SubscribeTask.run(ObservableSubscribeOn.java:96)\n\tat io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:452)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:61)\n\tat io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:52)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:237)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)\n\tat java.lang.Thread.run(Thread.java:818)\nCaused by: java.lang.RuntimeException: Duplicate found in causal chain so cropping to prevent loop ...\n\tat android.util.Log.getStackTraceString(Log.java:338)\n\tat android.util.Log.e(Log.java:243)\n\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:276)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)\n\tat io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:252)\n\tat io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:109)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:148)\n\tat android.app.ActivityThread.main(ActivityThread.java:5417)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)\njava.lang.RuntimeException: Duplicate found in causal chain so cropping to prevent loop ...\n\tat android.util.Log.getStackTraceString(Log.java:338)\n\tat android.util.Log.e(Log.java:243)\n\tat org.acra.log.AndroidLogDelegate.e(AndroidLogDelegate.java:56)\n\tat org.acra.ErrorReporter.uncaughtException(ErrorReporter.java:254)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)\n\tat java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)\n\tat io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:411)\n\tat io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:365)\n\tat io.reactivex.internal.observers.LambdaObserver.onError(LambdaObserver.java:77)\n\tat ...", 
    "USER_APP_START_DATE": "2017-10-24T18:17:42.006+03:00", 
    "USER_CRASH_DATE": "2017-10-24T18:17:44.713+03:00", 
    "IS_SILENT": false 
} 

私は何とか「STACK_TRACE」フィールドにメッセージを削減することができますか?たとえば、スタックトレースからいくつかの開始行だけを送信できますか?

+1

を使用してカスタムReportSender Sを登録することができます。ここで解決策が見つからない場合は、機能要求を提出してください! – CommonsWare

+0

私はそれを視点に入れてお勧めします。 30kは巨大ではありません。 *多くのエラーがあってはいけないので、ユーザーやバックエンドにとって大きなコストはかかりません。そして、あなたが失敗した場合、できるだけ多くの情報を必要とし、stacktraceはあなたが得ることができる最高の情報です。 – William

答えて

0

ReportSender(既定値のいずれかを拡張)を作成し、送信前にレポートを変更します。

私はそのためのオプションを認識していないです@ReportsCrashes.reportSenderFactoryClasses

関連する問題