在外部库中引发异常时,Android Studio会挂起

时间:2018-07-26 08:35:10

标签: android android-studio hang

我在Android Studio(3.1.3)中遇到问题,当(我假设是)从外部库中引发异常时,应用程序将挂起。由于无法查看异常是什么,因此无法进行调试。它不会打印到Logcat中,调试控制台也不会在try catch语句中捕获异常。

起初我以为是因为代码在另一个线程上运行,但是它也在主线程上运行时发生。

我还尝试重新启动模拟器,android studio和我的计算机,但是它们都没有帮助。

并非所有例外都发生(我通过除以0进行测试)

如果有帮助,这是引发异常的代码:

Gson gson = new GsonBuilder().registerTypeAdapter(User.class, new InterfaceAdapter()).create();
SharedPreferences sharedPreferences = context.getSharedPreferences(getFileName(context), ContextWrapper.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
try {           
    String value = gson.toJson(user); //this is where the program hangs
    editor.putString(getKeyName(), value);
    editor.apply();
} catch (Exception ex) {
    ex.printStackTrace();
}

基本上,这是问题开始后logcat的外观:

  

07-26 08:28:06.754 6211-6220 / org.myorg.myapp I / zygote:执行完整的代码缓存收集,代码= 76KB,数据= 76KB

     

07-26 08:28:06.756 6211-6220 / org.myorg.myapp I / zygote:代码缓存收集后,代码= 42KB,数据= 44KB

     

07-26 08:28:14.867 6211-6224 / org.myorg.myapp I / zygote:等待阻塞的GC调试器

     

07-26 08:28:14.883 6211-6224 / org.myorg.myapp I / zygote:WaitForGcToComplete因原因调试器而被阻止了16.146ms

     

07-26 08:28:15.201 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放409390(7MB)AllocSpace对象,41(984KB)LOS对象,24%可用空间,18MB / 24MB ,暂停692us,总计101.606ms

     

07-26 08:28:15.519 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放592391(10MB)AllocSpace对象,48(1428KB)LOS对象,18%可用空间,26MB / 32MB ,暂停799us,总计124.258ms

     

07-26 08:28:15.718 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放668826(11MB)AllocSpace对象,47(1520KB)LOS对象,15%可用空间,31MB / 37MB ,暂停了1.041毫秒,总计149.078毫秒

     

07-26 08:28:15.933 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC释放了781317(13MB)AllocSpace对象,51(1836KB)LOS对象,13%的可用空间,37MB / 43MB ,暂停了1.114毫秒,总计169.812毫秒

     

07-26 08:28:16.172 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放871622(14MB)AllocSpace对象,52(2044KB)LOS对象,12%可用空间,43MB / 49MB ,暂停1.219ms,总计192.129ms

     

07-26 08:28:16.461 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放985287(16MB)AllocSpace对象,55(2MB)LOS对象,10%可用空间,49MB / 55MB ,暂停962us,总计239.343ms

     

07-26 08:28:16.799 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1046427(17MB)AllocSpace对象,52(2MB)LOS对象,9%可用空间,58MB / 64MB ,暂停了1.088毫秒,总计290.110毫秒

     

07-26 08:28:17.121 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1235281(20MB)AllocSpace对象,58(2MB)LOS对象,8%的可用空间,65MB / 71MB ,暂停了924us,总计281.931ms

     

07-26 08:28:17.512 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1305931(22MB)AllocSpace对象,58(2MB)LOS对象,7%的可用空间,76MB / 82MB ,暂停了2.252ms,总计347.833ms

     

07-26 08:28:17.946 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1545721(25MB)AllocSpace对象,62(3MB)LOS对象,6%已释放,86MB / 92MB ,暂停670us,总计388.329ms

     

07-26 08:28:18.446 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1689093(28MB)AllocSpace对象,64(3MB)LOS对象,5%可用空间,94MB / 100MB ,暂停了811us,总计447.255ms

     

07-26 08:28:18.993 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1706872(28MB)AllocSpace对象,61(3MB)LOS对象,5%的可用空间,106MB / 112MB ,暂停了1.647ms,总计494.095ms

     

07-26 08:28:19.564 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1917145(31MB)AllocSpace对象,64(4MB)LOS对象,4%可用空间,124MB / 130MB ,暂停了1.588ms,总计525.774ms

     

07-26 08:28:19.869 6211-6224 / org.myorg.myapp I / zygote:等待阻塞的GC调试器

     

07-26 08:28:20.215 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放2316750(38MB)AllocSpace对象,73(5MB)LOS对象,4%可用空间,138MB / 144MB ,暂停675us,总计594.107ms

     

07-26 08:28:20.215 6211-6224 / org.myorg.myapp I / zygote:WaitForGcToComplete因原因调试器而被阻止345.610ms

     

07-26 08:28:20.921 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放2507776(41MB)AllocSpace对象,74(5MB)LOS对象,4%可用空间,136MB / 142MB ,暂停711us,总计657.115ms

     

07-26 08:28:21.698 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放1960643(32MB)AllocSpace对象,55(4MB)LOS对象,3%可用空间,170MB / 176MB ,暂停了2.113ms,总计729.245ms

     

07-26 08:28:22.563 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放3069424(50MB)AllocSpace对象,82(6MB)LOS对象,3%可用空间,191MB / 197MB ,暂停了2.610毫秒,总计817.861毫秒

     

07-26 08:28:23.553 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放3358701(55MB)AllocSpace对象,84(7MB)LOS对象,3%可用空间,188MB / 194MB ,暂停了2.265ms,总计941.755ms

     

07-26 08:28:24.550 6211-6228 / org.myorg.myapp I / zygote:后台并发复制GC已释放2638191(43MB)AllocSpace对象,63(5MB)LOS对象,2%可用空间,227MB / 233MB ,暂停687us,总计939.390ms

     

07-26 08:28:24.869 6211-6224 / org.myorg.myapp I / zygote:等待阻塞的GC调试器

1 个答案:

答案 0 :(得分:0)

转到您的logcat,在右侧将出现一个微调器,其中包含如何过滤日志的选项。选择“编辑过滤器配置”,然后键入您的程序包名称。这样,您就可以跟踪在您的情况下消失的日志。

enter image description here

干杯!