参数 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")
}
}
我正在将 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")
}
}