firebase - 反应本机堆栈跟踪
问题描述
我已React Native App
与 Firebase Crashlytics 相关联。问题是firebase发送不可读的堆栈跟踪,如下所示。有任何方法可以阅读此类错误。
我只想知道何时抛出错误。
这是我的堆栈跟踪
致命异常:com.facebook.react.common.JavascriptException:不变违规:不变违规:不变违规:inputRange 必须是单调非递减 0,-1
此错误位于: in RCTView in t in t in Connect(t) in t in RCTView in RCTView in RCTView in n in r in t in RCTView in RCTView in t in t in RCTView in t in n in n in r in n in t in RCTView in AndroidDrawerLayout in DrawerLayoutAndroid in t in n in n in e in t in Connect(t) in n in Unknown in RCTView in RCTView in t
此错误位于:in n in t in RCTView in AndroidDrawerLayout in DrawerLayoutAndroid in t in n in n in e in t in Connect(t) in n in Unknown in RCTView in RCTView in t
此错误位于:in n in e in t in Connect(t) in n in Unknown in RCTView in RCTView in t, stack: v@178:1977 p@178:269 e@178:2406 value@188:720 _renderIndicator@718:1582 value@718:5454 qn@106:40634 tr@106:46334 Nr@106:56528 Ur@106:56960 ui@106:61804 oi@106:61224 Ue@106:68050 Ie@106:14248我们@106:14421 接收Touches@106:15235 value@18:3352 @18:935 value@18:2621 value@18:907
at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java:54) at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException(ExceptionsManagerModule.java:38) at java.lang.reflect.Method.invoke(Method.java) at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372) at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160) at com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java) at android.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:101) at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29) at android.os.Looper.loop(Looper.java:166) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:192) at java.lang.Thread.run(Thread.java:784)
解决方案
这称为混淆,将有意义的符号替换为无意义的符号以减少生产中的文件大小。通常,当您构建您的应用程序时,它会生成可用于符号化您的应用程序的去混淆文件(通常以.dSYM文件的形式) 。
根据您使用的平台,获取 .dSYM 会有所不同,但firebase 有一个方便的指南,应该能够在这种特定情况下提供进一步的帮助。
出于文档的目的,我将硬编码此答案中提供的步骤。
IOS
Open your project in Xcode, and select the project file in the Xcode Navigator.
Select your main build target from the Select a project or target dropdown.
Open the target's Build Settings tab.
Click All near the top of the tab.
Search for "debug information format".
Set Debug Information Format to DWARF with dSYM File.
安卓
要保留 Crashlytics 可读崩溃报告所需的信息,请将以下行添加到您的 Proguard 或 Dexguard 配置文件中:
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
推荐阅读
- apache - Facebook Debugger: Change Canonical URL value after Reverse Proxy Rewrite
- android - getting the location of a static marker when the map is scrolled
- c++ - Workaround GCC 5.5 tuple initialisation bug
- python - 更改 seqID 并删除模式后的一部分
- android - 使 ImageView 大小适应内部图像
- c# - ASP.NET MVC - 模型未绑定到部分视图中的 Ajax.BeginForm
- asp.net-mvc - 在 MVC 中使用实体框架从 Sql 表中获取数据
- excel - 在 Excel 中从范围创建列表
- python - 当python中的相同请求正在工作时,无法在本机反应中使用aws4上传图片
- c++ - 在 Visual C++ Win 10 中查找蓝牙 RSSI 值