使用Kotlin设置Google身份验证时,会出现以下错误:“类型推断失败。预期的类型不匹配:推断的类型为GoogleSignInAccount?但预期为GoogleSignInAccount”。错误来自行 “有效帐户:GoogleSignInAccount = completedTask.getResult(ApiException :: class.java)” 这段代码几乎全部来自https://developers.google.com/identity/sign-in/android/sign-in
我检查了此处发布的问题,但问题完全相同,但该问题的答案无法解决我的问题(也不是她的Type mismatch: inferred type is GoogleSignInAccount? but GoogleSignInAccount was expected > Task :app:buildInfoGeneratorFdroidDebug)。
覆盖乐趣onActivityResult(requestCode:Int,resultCode:Int,数据:Intent?){
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val task: Task<GoogleSignInAccount> = GoogleSignIn.getSignedInAccountFromIntent(data)
handleResult (task)
}else {
Toast.makeText(this, "Problem in execution order :(", Toast.LENGTH_LONG).show()
}
}
private fun handleResult (completedTask: Task<GoogleSignInAccount>) {
try {
val account: GoogleSignInAccount = completedTask.getResult(ApiException::class.java) #error in this line
updateUI (account)
} catch (e: ApiException) {
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show()
}
}
如果有人对导致此错误的原因有任何建议,那就太好了。
答案 0 :(得分:0)
这可能是一个较晚的答案,但希望它可以在将来帮助像我这样的Kotlin初学者。
我遇到了完全相同的错误,并进行了以下修改以解决该问题:
val account: GoogleSignInAccount? = completedTask.getResult(ApiException::class.java)
updateUI (account!!)
您可以参考Kotlin在线文档Null Safety,以了解有关null和“ !!”的详细信息。运算符。