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

时间:2014-10-13 09:42:55

标签: 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是否已被回收?

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

1 个答案:

答案 0 :(得分:9)

由于L中TypedArray池的更改,两次调用TypedArray.recycle()或在recycle()之后调用TypedArray上的getter是不安全的。这从来就不是正确的应用程序行为,在L之前可能会引入微妙的错误。