android - 回收两次! TypedArray 中的运行时异常

标签 android android-5.0-lollipop

我从使用 android L 预览版的设备收到一些崩溃报告,问题是

Caused by: java.lang.RuntimeException: [17, ...... ] recycled twice!
       at android.content.res.TypedArray.recycle(TypedArray.java:869)

看不到代码,因为Android L还没有,如何查看TypedArray是否已经被回收了?

我实际上发现对 recycle 的调用被调用了两次,但无论如何,为什么现在抛出异常会破坏可能旧的工作代码(即使调用 recycle 两次是不正确的)。

最佳答案

由于 L 中 TypedArray 池的变化,调用 TypedArray.recycle() 两次或在 recycle() 之后调用 TypedArray 上的 getter 是不安全的。这从来都不是正确的应用程序行为,并且在 L 之前可能引入了细微的错误。

关于android - 回收两次! TypedArray 中的运行时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26336972/

相关文章:

android - 尝试在空对象引用上调用虚拟方法 'void android.widget.ListView.setAdapter(android.widget.ListAdapter)'

android - 在 Android 的 Spinner 中未选择位置 0

android - 用于移动应用程序的 C++ 库

android - 在 android.R.layout.simple_list_item_1 上使用 butterknife 绑定(bind) View

android - Android-Logcat错误

android - 在具有共享元素的 fragment 上输入转换以共享元素为目标

android - 我可以在当前 Android 版本中使用 Android L Preview 支持库中的小部件吗?

android - 如何在 Activity 场景动画过渡期间防止状态栏和导航栏出现动画?

Android 在 Lollipop 及更高版本上自定义 EditText

android - 共享元素过渡