我将应用程序上的代码从同步任务更改为异步任务后,开始在某些设备中崩溃。是什么造成的?我该如何解决这个问题并保持异步? 以下是Crashlytics的崩溃日志:
Fatal Exception: kotlin.KotlinNullPointerException
com.example.myapp.news.NewsTweets.SetupTwtr (NewsTweets.kt:234)
com.example.myapp.news.NewsTweets$onCreateView$1.success (NewsTweets.kt:89)
com.twitter.sdk.android.tweetui.BaseTimeline$TweetsCallback.success (BaseTimeline.java:63)
com.twitter.sdk.android.core.Callback.onResponse (Callback.java:40)
retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run (ExecutorCallAdapterFactory.java:70)
android.os.Handler.handleCallback (Handler.java:739)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:135)
android.app.ActivityThread.main (ActivityThread.java:5912)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1405)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1200)
以下是代码:
timeline = TwitterListTimeline.Builder()
.slugWithOwnerScreenName("twitterlist", "twitteruser")
.build()
//Request tweets async
timeline.next(null, object: Callback<TimelineResult<Tweet>?>() {
override fun success(result: Result<TimelineResult<Tweet>?>?) {
if (theme_1 == "THEME_1") {
SetupTwtr(R.style.Theme1)
} else if (theme_2 == "THEME_2") {
SetupTwtr(R.style.Theme2)
} else if (theme_3 == "THEME_3") {
SetupTwtr(R.style.Theme3)
} else if (theme_4 == "THEME_4") {
SetupTwtr(R.style.Theme1)
} else if (theme_5 == "THEME_5") {
SetupTwtr(R.style.Theme5)
} else if (theme_6 == "THEME_6") {
SetupTwtr(R.style.Theme6)
} else if (theme_7 == "THEME_7") {
SetupTwtr(R.style.Theme7)
}
}
override fun failure(exception: TwitterException?) {
Crashlytics.logException(exception)
}
})
fun SetupTwtr(Style: Int){
adapter = TweetTimelineListAdapter.Builder(this.context!!)
.setTimeline(timeline)
.setViewStyle(Style)
.setOnActionCallback(actionCallback)
.build()
listAdapter = adapter
}
根据用户使用的主题,它改变了Twitter时间线样式的样子。例如,如果用户使用THEME_1,则使用Theme1 Style更改加载twitter时间轴。
致命异常:kotlin.KotlinNullPointerException崩溃发生在adapter = TweetTimelineListAdapter.Builder(this.context!!)
行
从我的解析服务器加载异步数据,然后使用GlideSlider将它们添加到幻灯片显示时,我也遇到同样的kotlin.KotlinNullPointerException
问题。