一切都在调试模式下运行,但在发布模式下崩溃。在调试模式下可用的哪些必需权限未在发布模式下打开?
编辑
当我将“链接”设置为“无”时,我会从第一个屏幕转到“登录”屏幕。但是,当我添加“释放”权限Internet
时,它第一次尝试读取远程Entity Framework Core表时会崩溃。
编辑2
在发布模式下,如果我选中Use Shared Runtime
,则该应用可以正常运行。
编辑3
在释放模式下,我暂时打开了调试功能。以下行仅在发布模式下引发System.TypeInitializationException:
if (_context.bma_users.Any(p => p.username == _name.Text) && _name.Text != string.Empty)
答案 0 :(得分:10)
假设您拥有Android Studio,并且未实现崩溃报告服务(Firebase,Crashlytics等)
您可能要先查看崩溃日志打印:
Log Level
更改为Error
。如果您无法复制:
下次崩溃时,请连接设备并执行与上述相同的操作。通常,可以查看日志历史记录,滚动直到找到崩溃:)
寻找FATAL EXCEPTION
答案 1 :(得分:4)
您已经假设“权限”,不确定为什么...
我只有在发布模式下崩溃时才禁用的第一件事是缩小(aka ProGuard)。因此,请禁用混淆功能,然后再次构建并尝试查看是否仍然崩溃。如果没有,则一次重新启用proguard一行以查明原因。
答案 2 :(得分:1)
答案是在West
下Android Options
屏幕上将Project Properties
设置为select max(case when year = 2016 then id end) as id_2016,
max(case when year = 2017 then id end) as id_2017,
max(case when year = 9999 then id end) as id_9999
from (select t.*, row_number() over (partition by year order by id) as seqnum
from dbo.ExampleTable t
) t
group by seqnum
order by seqnum;
。似乎没有什么关系,但我尝试了所有可能的组合,终于奏效了。
答案 3 :(得分:1)
您只需为debuggable: true
构建类型设置release
。
完成调试后,请不要忘记删除此属性。
答案 4 :(得分:0)
您可以使用任何 crashlytics工具,例如Firebase Analytics,Fabric,Splunk Mint来获取确切的崩溃日志
答案 5 :(得分:0)
答案 6 :(得分:0)
使用FCM和Fabric进行崩溃处理,它们提供崩溃报告中的所有内容,甚至是应用程序崩溃时的代码行数。用这个开心吧