参数 currentAccessToken 为空

parameter currentAccessToken is null

我正在将 Facebook 登录整合到我的应用程序中。如果用户单击 LoginButton,我正在尝试使用 AccessTokenTracker 来监听用户注销时的情况。但是,如果我单击 LoginButton 退出,应用程序就会崩溃。下面是错误。

    --------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.testfblogin, PID: 6687
    java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkNotNullParameter, parameter currentAccessToken
        at com.example.testfblogin.MainActivity$onActivityResult.onCurrentAccessTokenChanged(Unknown Source:7)
        at com.facebook.AccessTokenTracker$CurrentAccessTokenBroadcastReceiver.onReceive(AccessTokenTracker.java:110)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:313)
        at androidx.localbroadcastmanager.content.LocalBroadcastManager.handleMessage(LocalBroadcastManager.java:121)
        at android.os.Handler.dispatchMessage(Handler.java:112)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987) 

我就是这样使用 AccessTokenTracker:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    callbackManager.onActivityResult(requestCode, resultCode, data)
    super.onActivityResult(requestCode, resultCode, data)

    object : AccessTokenTracker() {
        override fun onCurrentAccessTokenChanged(
            oldAccessToken: AccessToken,
            currentAccessToken: AccessToken
        ) {
            Log.d("APP-TEST", "onCurrentAccessTokenChanged")
        }
    }
} 

谁能指出我可能做错或遗漏的地方

把方法中accessTokenTracker的代码段去掉,贴在方法外面

我明白了。我只需要通过放置 ?

使参数可为空
object : AccessTokenTracker() {
    override fun onCurrentAccessTokenChanged(
        oldAccessToken: AccessToken?,
        currentAccessToken: AccessToken?
    ) {
        Log.d("APP-TEST", "onCurrentAccessTokenChanged")
    }
}