我正在開發一個Kotlin Android應用程序,並且我遇到了集成Google Sign In的問題,當我獲取GoogleSignInAccount以提取屬性時,屬性名稱似乎被混淆了(或以其他方式混亂達),這裏的道路上的屬性看2.3調試器的截圖:Kotlin - 模糊屬性名稱
這裏的代碼試圖訪問這些屬性的片段:
private fun googleSignInResult(data : GoogleSignInResult) {
if (data.isSuccess) {
if (data.signInAccount != null) {
val account = data.signInAccount
val authData = HashMap<String, String>()
authData["id_token"] = account?.idToken.let { it } ?: return
authData["id"] = account?.id.let { it } ?: return
val task = ParseUser.logInWithInBackground("google", authData)
task.continueWith { user ->
if (task.isCancelled) {
Log.d(TAG, "User cancelled Google login")
} else if (task.isFaulted) {
Log.d(TAG, "Failed: " + task.error)
} else {
this.user = task.result
this.user?.put("email", account?.email)
this.user?.put("name", account?.displayName)
this.user?.put("firstName", account?.displayName)
this.user?.saveInBackground({ error ->
if(error != null) {
Log.d(TAG, "Error: " + error.message)
this.user?.deleteInBackground()
ParseUser.logOutInBackground()
} else {
//Logged in successfully
}
})
}
}
}
}
}
任何人都可以提供一些線索上爲什麼它的屬性看起來像這樣?,當我嘗試訪問idToken或id時,它們總是爲空,但是,「混淆」的屬性名稱無法訪問,這是一個kotlin錯誤還是我的錯誤?
任何幫助將不勝感激!
fields!= properties。你在JVM上,你在調試器中看到的是混淆字段。獲得者是公開的並保留原來的名字。 Java'.getDisplayName()'='.displayName'在Kotlin中。 –