在Kotlin中,我推翻了这两个Google登录功能:
override fun onConnectionFailed(result: ConnectionResult) {
if (result.hasResolution()) {
try {
result.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE)
} catch (e: IntentSender.SendIntentException) {
// Unable to resolve, message user appropriately
}
} else {
val gaa = GoogleApiAvailability.getInstance()
gaa.getErrorDialog(this, result.errorCode, 0)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) {
when (requestCode) {
RESOLVE_CONNECTION_REQUEST_CODE -> if (resultCode == Activity.RESULT_OK) {
mGoogleApiClient!!.connect()
}
}
}
检查与谷歌的连接是否失败。
问题在于,当我关闭包含用户帐户的对话框时,会在启动活动时弹出该对话框
喜欢这个:
我正在使用以下logcat获得IllegalArgumentException
E / AndroidRuntime:致命异常:主要 处理:com.dancam.subscriptions,PID:6346 java.lang.RuntimeException:将结果ResultInfo {who = null,request = 6783,result = 0,data = null}传递给activity {com.dancam.subscriptions / com.dancam.subscriptions.ActiveSubscriptions.Subscriptions_main}:java.lang .IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数数据 在android.app.ActivityThread.deliverResults(ActivityThread.java:4126) 在android.app.ActivityThread.handleSendResult(ActivityThread.java:4169) 在android.app.ActivityThread.-wrap20(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1552) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 在android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:889) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) 引起:java.lang.IllegalArgumentException:指定为非null的参数为null:方法kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull,参数数据 在com.dancam.subscriptions.ActiveSubscriptions.Subscriptions_main.onActivityResult(Subscriptions_main.kt:0) 在android.app.Activity.dispatchActivityResult(Activity.java:6937) 在android.app.ActivityThread.deliverResults(ActivityThread.java:4122) 在android.app.ActivityThread.handleSendResult(ActivityThread.java:4169) 在android.app.ActivityThread.-wrap20(ActivityThread.java) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1552) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:154) 在android.app.ActivityThread.main(ActivityThread.java:6186) at java.lang.reflect.Method.invoke(Native Method) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:889) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
指向onActivityResult
函数。
我尝试过更改
requestCode: Int
到
requestCode: Int?
但后来我显然得到一个错误,因为该函数与它的超类中的函数不同。
我该如何解决?
答案 0 :(得分:17)
您需要提及data
null
,data: Intent?
因为data
意图可以null
取消操作或未发送结果{} p>
未能提供结果ResultInfo {who = null,request = 6783,result = 0,
data=null
} to activity参数指定为non-null is null
:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
// ^^