我使用Android L预览从设备收到一些崩溃报告,问题是
Caused by: java.lang.RuntimeException: [17, ...... ] recycled twice!
at android.content.res.TypedArray.recycle(TypedArray.java:869)
无法看到代码,因为Android L仍然无法使用,如何检查TypedArray是否已被回收?
我实际上发现对回收的调用被调用两次,但无论如何,为什么抛出一个异常现在打破了可能旧的工作代码(即使调用回收两次不正确)。
答案 0 :(得分:9)
由于L中TypedArray池的更改,两次调用TypedArray.recycle()或在recycle()之后调用TypedArray上的getter是不安全的。这从来就不是正确的应用程序行为,在L之前可能会引入微妙的错误。