android-studio - 如何修复“预期类型不匹配:推断类型为 GoogleSignInAccount?但预期为 GoogleSignInAccount”错误?
问题描述
使用 Kotlin 设置 Google 身份验证时,出现以下错误:“类型推断失败。预期类型不匹配:推断类型为 GoogleSignInAccount?但预期为 GoogleSignInAccount”。错误来自行“val account: GoogleSignInAccount = completedTask.getResult(ApiException::class.java)”此代码几乎全部来自https://developers.google.com/identity/sign-in/android /登入
我已经检查了此处发布的问题与完全相同的问题,但该问题的答案无法解决我的问题(她的类型不匹配:推断的类型是 GoogleSignInAccount?但 GoogleSignInAccount 是预期的>任务:app:buildInfoGeneratorFdroidDebug)。
覆盖乐趣 onActivityResult(requestCode: Int, resultCode: Int, data: 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()
}
}
如果有人对导致此错误的原因有什么建议,那就太好了。
解决方案
这可能是一个迟到的答案,但希望它可以帮助像我这样的 Kotlin 初学者。
我遇到了完全相同的错误,并修改为以下部分以修复它:
val account: GoogleSignInAccount? = completedTask.getResult(ApiException::class.java)
updateUI (account!!)
关于 null 和 "!!" 的详细信息可以参考 Kotlin 在线文档Null Safety 操作员。