最近使用kotlin开发遇到了个问题,就是使用转场动画的时候出现了个有趣的情况
这是启动转场动画代码
startActivity(slideByCodeIntent, ActivityOptionsCompat.makeSceneTransitionAnimation(this@ShopCategoryListActivity).toBundle())
使用这段代码跳转在java环境是完全没有问题的,但是在kotlin是不可行的会报以下错误
java.lang.NullPointerException: Attempt to read from field 'java.lang.Object android.support.v4.util.Pair.first' on a null object reference
一开始百思不得其解啊,然后考虑了一下是不是参数问题然后我们打断点看看
image.png没错,sharedElements[0]不为空,这是什么情况!
我们继续跟进
image.pnglength长度=1,也就是说我们在startActivity传进来的null,在这里kotlin帮我们处理变成了一个pair了
image.pngpair[0] =null,到这里我们就清楚了,启动转场代码改成这样就可以,去掉null,则可以正常运行
startActivity(slideByCodeIntent, ActivityOptionsCompat.makeSceneTransitionAnimation(this@ShopCategoryListActivity).toBundle())
有大神能告诉这个原因就好了。
网友评论