终结器 java.lang.IllegalStateException 引发的未捕获异常:Binder 已终结

Posted

技术标签:

【中文标题】终结器 java.lang.IllegalStateException 引发的未捕获异常:Binder 已终结【英文标题】:Uncaught exception thrown by finalizer java.lang.IllegalStateException: Binder has been finalized 【发布时间】:2017-03-24 14:34:36 【问题描述】:

这段代码

soundPool.release();
soundPool = null;

有时会产生此错误:

Uncaught exception thrown by finalizer
java.lang.IllegalStateException: Binder has been finalized!
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(Binder.java:503)
    at com.android.internal.app.IAppOpsService$Stub$Proxy.stopWatchingMode(IAppOpsService.java:431)
    at android.media.SoundPool.release(SoundPool.java:195)
    at android.media.SoundPool.finalize(SoundPool.java:204)
    at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:217)
    at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:200)
    at java.lang.Thread.run(Thread.java:818)

我能做什么?

【问题讨论】:

你有解决办法吗? 如果它只是有时发生,那么将它包装在try-catch块中怎么样? @activity,分享更多代码,简单了解 【参考方案1】:

所以我认为这可能是一个 Android 错误。看起来很像这个问题,在“未来版本”中标记为已修复:https://issuetracker.google.com/issues/37138597

【讨论】:

以上是关于终结器 java.lang.IllegalStateException 引发的未捕获异常:Binder 已终结的主要内容,如果未能解决你的问题,请参考以下文章

添加flutter firebase auth ui后应用程序崩溃

终结器 java.lang.IllegalStateException 引发的未捕获异常:Binder 已终结

更改终结器策略

如何在终结器中激活自动记录?

终结器线程的范围是啥 - 每个应用程序域或每个进程?

对于本机对等对象生命周期管理,是不是真的应该避免使用 Java 终结器?