[英]Android, Facebook login doesn't work when the Facebook application is installed
[英]Android: Facebook login doesn't work, no error message
我的 facebook 登录不起作用,我所看到的没有错误,我需要一些帮助。这是我单击 fb 登录按钮时生成的日志:
2020-10-15 14:43:20.295 25956-26057/dk.swibbid.mz I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
2020-10-15 14:43:20.295 25956-26057/dk.swibbid.mz I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
2020-10-15 14:43:20.562 25956-25956/dk.swibbid.mz D/ViewRootImpl@29bef01[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-10-15 14:43:20.563 25956-25956/dk.swibbid.mz D/InputMethodManager: prepareNavigationBarInfo() DecorView@b59fc26[MainActivity]
2020-10-15 14:43:20.563 25956-25956/dk.swibbid.mz D/InputMethodManager: getNavigationBarColor() -855310
2020-10-15 14:43:20.567 25956-25956/dk.swibbid.mz D/InputMethodManager: prepareNavigationBarInfo() DecorView@b59fc26[MainActivity]
2020-10-15 14:43:20.567 25956-25956/dk.swibbid.mz D/InputMethodManager: getNavigationBarColor() -855310
2020-10-15 14:43:20.567 25956-25956/dk.swibbid.mz D/InputMethodManager: startInputInner - Id : 0
2020-10-15 14:43:20.567 25956-25956/dk.swibbid.mz I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2020-10-15 14:43:20.571 25956-25956/dk.swibbid.mz D/InputTransport: Input channel constructed: fd=91
2020-10-15 14:43:20.571 25956-25956/dk.swibbid.mz D/InputTransport: Input channel destroyed: fd=97
2020-10-15 14:43:20.572 25956-25956/dk.swibbid.mz D/ViewRootImpl@29bef01[MainActivity]: stopped(false) old=false
2020-10-15 14:43:20.579 25956-25956/dk.swibbid.mz D/ViewRootImpl@4c90b3a[FacebookActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2020-10-15 14:43:20.579 25956-25956/dk.swibbid.mz D/InputMethodManager: prepareNavigationBarInfo() DecorView@1f94c59[FacebookActivity]
2020-10-15 14:43:20.579 25956-25956/dk.swibbid.mz D/InputMethodManager: getNavigationBarColor() -855310
2020-10-15 14:43:20.586 25956-25956/dk.swibbid.mz D/ViewRootImpl@4c90b3a[FacebookActivity]: stopped(true) old=false
2020-10-15 14:43:20.606 25956-26147/dk.swibbid.mz W/libEGL: EGLNativeWindowType 0x770e368010 disconnect failed
2020-10-15 14:43:20.606 25956-26147/dk.swibbid.mz D/OpenGLRenderer: eglDestroySurface = 0x7709bf4300, 0x770e368000
2020-10-15 14:43:20.606 25956-25956/dk.swibbid.mz D/ViewRootImpl@4c90b3a[FacebookActivity]: dispatchDetachedFromWindow
2020-10-15 14:43:20.611 25956-25956/dk.swibbid.mz D/InputTransport: Input channel destroyed: fd=90
2020-10-15 14:43:20.796 25956-25956/dk.swibbid.mz W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
2020-10-15 14:43:20.796 25956-25956/dk.swibbid.mz W/System.err: at android.view.ViewRootImpl.getHostVisibility(ViewRootImpl.java:1809)
2020-10-15 14:43:20.796 25956-25956/dk.swibbid.mz W/System.err: at android.view.ViewRootImpl.handleAppVisibility(ViewRootImpl.java:1445)
2020-10-15 14:43:20.796 25956-25956/dk.swibbid.mz W/System.err: at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:4829)
2020-10-15 14:43:20.796 25956-25956/dk.swibbid.mz W/System.err: at android.os.Handler.dispatchMessage(Handler.java:106)
2020-10-15 14:43:20.797 25956-25956/dk.swibbid.mz W/System.err: at android.os.Looper.loop(Looper.java:214)
2020-10-15 14:43:20.797 25956-25956/dk.swibbid.mz W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7099)
2020-10-15 14:43:20.797 25956-25956/dk.swibbid.mz W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2020-10-15 14:43:20.797 25956-25956/dk.swibbid.mz W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
2020-10-15 14:43:20.797 25956-25956/dk.swibbid.mz W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
2020-10-15 14:43:33.409 25956-26069/dk.swibbid.mz I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
2020-10-15 14:43:33.409 25956-26069/dk.swibbid.mz I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
2020-10-15 14:45:01.023 25956-25956/dk.swibbid.mz D/ViewRootImpl@29bef01[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2020-10-15 14:45:01.024 25956-25956/dk.swibbid.mz D/InputMethodManager: prepareNavigationBarInfo() DecorView@b59fc26[MainActivity]
2020-10-15 14:45:01.024 25956-25956/dk.swibbid.mz D/InputMethodManager: getNavigationBarColor() -855310
2020-10-15 14:45:03.034 25956-25956/dk.swibbid.mz D/ViewRootImpl@29bef01[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2020-10-15 14:45:03.034 25956-25956/dk.swibbid.mz D/InputMethodManager: prepareNavigationBarInfo() DecorView@b59fc26[MainActivity]
2020-10-15 14:45:03.035 25956-25956/dk.swibbid.mz D/InputMethodManager: getNavigationBarColor() -855310
上面的空指针错误不适用于我的代码,必须是 facebook 活动中的某些内容。 这是我的片段中的代码:
class LoginFragment : BaseFragment() {
lateinit var callbackManager : CallbackManager
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_login_initial, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
toolbarSetup()
setHasOptionsMenu(true)
setOnClickListeners()
callbackManager = CallbackManager.Factory.create()
login_facebook.setOnClickListener {
login_real_facebook.performClick()
}
login_real_facebook.setReadPermissions("email", "public_profile")
login_real_facebook.registerCallback(callbackManager, object :
FacebookCallback<LoginResult> {
override fun onSuccess(loginResult: LoginResult) {
Log.d("fb", "facebook:onSuccess:$loginResult")
handleFacebookAccessToken(loginResult.accessToken)
}
override fun onCancel() {
Log.d("fb", "facebook:onCancel")
// ...
}
override fun onError(error: FacebookException) {
Log.d("fb", "facebook:onError", error)
// ...
}
})
}
private fun handleFacebookAccessToken(token: AccessToken) {
Log.d("fb", "handleFacebookAccessToken:$token")
val credential = FacebookAuthProvider.getCredential(token.token)
firebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(requireActivity()) { task ->
if (task.isSuccessful) {
// Sign in success, update UI with the signed-in user's information
Log.d("fb", "signInWithCredential:success")
findNavController().navigateUp()
} else {
// If sign in fails, display a message to the user.
Log.w("fb", "signInWithCredential:failure", task.exception)
Toast.makeText(
requireContext(), "Authentication failed.",
Toast.LENGTH_SHORT
).show()
}
}
}
private fun setOnClickListeners() {
login_create.setOnClickListener {
findNavController().navigate(R.id.action_loginFragment_to_registerFragment)
}
login_swibbid.setOnClickListener {
findNavController().navigate(R.id.action_loginFragment_to_loginSwibbidFragment)
}
}
private fun toolbarSetup() {
toolbarService.nothingVisible()
myToolbar.navigationIcon = null
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
callbackManager.onActivityResult(requestCode, resultCode, data)
}
}
我已经设置了哈希值,所以不能,这是我使用的依赖项:
implementation 'com.facebook.android:facebook-login:8.0.0'
我也试过使用旧的,但它没有区别仍然是相同的错误。
堆栈跟踪表示某些内容为null
,因此请检查 toobarService 是否不为null
或您更改可见性的任何其他元素
这修复了它...
login_real_facebook.fragment = this
真的很烦人,根本没有迹象表明这是问题!!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.