2017-10-24 10 views
1

ACRA와 함께 Android 앱에서 오류 보고서를 보내고 있으며 모든 것이 잘 작동합니다. 스택 트레이스가 크다는 사실을 제외하고. 예를 들어, 보고서는 약 30,000 문자를 포함 할 수 있으며, 다음과 같이 :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의를 등록 할 수 있습니다. 여기에 해결책이 없으면 기능 요청을 제출하십시오! – CommonsWare

+0

나는 관점에서 그것을 제안하는 것이 좋습니다. 30k는 크지 않습니다. * 많은 오류가 없어야하므로 사용자 또는 백엔드에 큰 비용이 들지 않습니다. 그리고 실패했을 때 최대한 많은 정보를 원하고 stacktrace는 얻을 수있는 최상의 정보입니다. – William

답변

0

사용자 지정 ReportSender (기본값 중 하나를 확장)을 만들고 보고서를 보내기 전에 수정하십시오.

당신은 내가 그에 대한 옵션을 인식하지 오전 @ReportsCrashes.reportSenderFactoryClasses