空对象引用上的 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】:

在我的情况下,发生此错误是因为我从

导入了 TransitionInflator
import android.support.transition.TransitionInflater

虽然它应该从

导入
import android.transition.TransitionInflater

当我修复导入时,错误得到了解决。

【讨论】:

以上是关于空对象引用上的 TransitionSet ArrayList.size()的主要内容,如果未能解决你的问题,请参考以下文章

setAdapter 上的空对象引用错误

空对象引用上的 onActivityResult 数据

java.lang.NullPointerException:空对象引用上的 FloatingActionButton.setVisibility(int)'

空对象引用上的 void android.view.View.dispatchWindowVisibilityChanged(int)'

.getImage() 上的空对象引用 android [重复]

移动相机方法上的谷歌地图空对象引用[关闭]