致命异常:某些设备上的kotlin.KotlinNullPointerException

时间:2018-03-15 11:23:44

标签: android kotlin twitterkit

我将应用程序上的代码从同步任务更改为异步任务后,开始在某些设备中崩溃。是什么造成的?我该如何解决这个问题并保持异步? 以下是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问题。

0 个答案:

没有答案