空对象引用上的 TransitionSet ArrayList.size()
Posted
技术标签:
【中文标题】空对象引用上的 TransitionSet ArrayList.size()【英文标题】:TransitionSet ArrayList.size() on a null object reference 【发布时间】:2018-09-02 20:14:32 【问题描述】:通过本指南开始实现具有共享元素和动画的开放图像。
https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html
但是捕获了一个异常:
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:196)
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:60)
at android.support.transition.Transition.<init>(Transition.java:278)
at android.support.transition.TransitionSet.<init>(TransitionSet.java:91)
at android.support.transition.TransitionInflater.createTransitionFromXml(TransitionInflater.java:151)
at android.support.transition.TransitionInflater.inflateTransition(TransitionInflater.java:70)
通话时
TransitionInflater.from(context).inflateTransition(R.transition.my_transition)
【问题讨论】:
【参考方案1】:在 Google 上没有发现任何关于此问题的信息,这就是我发布此内容的原因。
问题在于持续时间参数。
你可以这样修复它:
需要从xml中去掉duration,在代码中创建TransitionSet后设置。
val transition = TransitionInflater.from(context).inflateTransition(R.transition.my_transition)
transition.duration = 325
希望对某人有所帮助。
【讨论】:
看起来你也在关注这个博客。 android-developers.googleblog.com/2018/02/… 。感谢您的帮助。 我希望我能投票给这个 50X。那真是个烦人的小虫子。请注意,这可以使用.apply duration = 325L
缩短一点【参考方案2】:
在我的情况下,发生此错误是因为我从
导入了 TransitionInflatorimport android.support.transition.TransitionInflater
虽然它应该从
导入import android.transition.TransitionInflater
当我修复导入时,错误得到了解决。
【讨论】:
以上是关于空对象引用上的 TransitionSet ArrayList.size()的主要内容,如果未能解决你的问题,请参考以下文章
java.lang.NullPointerException:空对象引用上的 FloatingActionButton.setVisibility(int)'
空对象引用上的 void android.view.View.dispatchWindowVisibilityChanged(int)'