繁体   English   中英

如何调试仅在发布模式下崩溃的 Android 应用

[英]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 并且没有实现崩溃报告服务( FirebaseCrashlytics等...)

您可能想先查看崩溃日志打印

  • 在 Android Studio 中打开Logcat
  • Log Level更改为Error
  • 确保在您的设备上启用了USB 调试
  • 将您的设备连接到计算机。
  • 使应用程序崩溃并查看它打印的内容。

如果您无法重现

下次崩溃时,连接设备并执行与上述相同的操作。 通常可以查看日志历史记录,滚动直到找到崩溃:)

寻找FATAL EXCEPTION

  • 请记住 - 使用 Logcat 搜索栏可以清除日志历史记录,在大多数情况下,您可以重新连接设备以再次查看。

你已经假设“许可”,不知道为什么......

当我只有在发布模式下崩溃时,我禁用的第一件事是缩小(又名 ProGuard)。 所以禁用混淆,再次构建并尝试查看是否仍然崩溃。 如果没有,请一次重新启用 proguard 一行以查明原因。

答案是在Project Properties下的Android Options屏幕中将Additional supported encodings设置为West 它似乎没有关系,但我尝试了所有可能的组合,这终于奏效了。

您可以为您的release构建类型设置debuggable: true 完成调试后不要忘记删除此属性。

您可以使用 Firebase Analytics、Fabric、Splunk Mint 等任何crashlytics 工具来获取准确的崩溃日志

转到 android 部分的属性,然后进入 Android 选项选项卡。

确保在您的发布配置中未选中“使用共享运行时”和“使用快速部署”框

属性页

使用 FCM 和 fabric for crashlatics,它们提供崩溃报告中的所有内容,甚至是应用程序崩溃的代码行数。 使用这个并快乐

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM