[英]How do I debug an Android app that crashes only in Release Mode
在调试模式下一切正常,但在发布模式下崩溃。 在发布模式下未打开的调试模式下有哪些必需的权限可用?
编辑
当我将 Linking 设置为 None 时,我会通过第一个屏幕进入我的登录屏幕。 但是,当我添加 Release 权限Internet
,它第一次尝试读取远程 Entity Framework Core Table 时崩溃了。
编辑 2
在发布模式下,如果我选中Use Shared Runtime
,应用程序运行良好。
编辑 3
我暂时在发布模式下打开了调试。 以下行仅在发布模式下引发 System.TypeInitializationException:
if (_context.bma_users.Any(p => p.username == _name.Text) && _name.Text != string.Empty)
如果您只想查看崩溃日志:
假设您有 Android Studio 并且没有实现崩溃报告服务( Firebase 、 Crashlytics等...)
您可能想先查看崩溃日志打印:
如果您无法重现:
下次崩溃时,连接设备并执行与上述相同的操作。 通常可以查看日志历史记录,滚动直到找到崩溃:)
寻找FATAL EXCEPTION
你已经假设“许可”,不知道为什么......
当我只有在发布模式下崩溃时,我禁用的第一件事是缩小(又名 ProGuard)。 所以禁用混淆,再次构建并尝试查看是否仍然崩溃。 如果没有,请一次重新启用 proguard 一行以查明原因。
答案是在Project Properties
下的Android Options
屏幕中将Additional supported encodings
设置为West
。 它似乎没有关系,但我尝试了所有可能的组合,这终于奏效了。
您可以为您的release
构建类型设置debuggable: true
。 完成调试后不要忘记删除此属性。
您可以使用 Firebase Analytics、Fabric、Splunk Mint 等任何crashlytics 工具来获取准确的崩溃日志
使用 FCM 和 fabric for crashlatics,它们提供崩溃报告中的所有内容,甚至是应用程序崩溃的代码行数。 使用这个并快乐
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.