【目標】
ncmb(nifty cloud mobile backend)とkotlinでログイン機能の実装
【経緯】
githubにあるjavaファイルをkotlinに変更して進めているところです。
該当ファイルのあるURL↓
https://github.com/NIFCloud-mbaas/android_login_demo
【問題とお願い】
・下記コードのlogcatエラーをなくしたいので、アドバイス願います、、、
【コード】
logcat(問題発生時)
07-07 08:12:58.925 2606-2606/com.sourcey.user E/AndroidRuntime: FATAL EXCEPTION: main Process: com.sourcey.user, PID: 2606 java.lang.RuntimeException: Unable to resume activity {com.sourcey.user/com.nifty.user.LoginActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=null} to activity {com.sourcey.user/com.nifty.user.LoginActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3506) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3546) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2795) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6251) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924) Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=null} to activity {com.sourcey.user/com.nifty.user.LoginActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at android.app.ActivityThread.deliverResults(ActivityThread.java:4178) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3474) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3546) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2795) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6251) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924) Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter data at com.nifty.user.LoginActivity.onActivityResult(LoginActivity.kt) at android.app.Activity.dispatchActivityResult(Activity.java:6919) at android.app.ActivityThread.deliverResults(ActivityThread.java:4174) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3474) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3546) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2795) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:203) at android.app.ActivityThread.main(ActivityThread.java:6251) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
SignupActivity(問題activity)
@file:Suppress("DEPRECATION") package com.nifty.user import android.app.Activity import android.app.ProgressDialog import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.util.Log import android.widget.Toast import com.nifty.cloud.mb.core.NCMBUser import kotlinx.android.synthetic.main.activity_signup.* import org.jetbrains.anko.startActivity @Suppress("DEPRECATION") class SignupActivity : AppCompatActivity() { public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_signup) btn_signup!!.setOnClickListener { signup() } link_login!!.setOnClickListener { // Finish the registration screen and return to the Login activity startActivity<LoginActivity>() } } private fun signup() { Log.d(TAG, "Signup") if (!validate()) { onSignupFailed() return } btn_signup!!.isEnabled = false val progressDialog = ProgressDialog(this@SignupActivity, R.style.AppTheme_Dark_Dialog) progressDialog.isIndeterminate = true progressDialog.setMessage("Creating Account...") progressDialog.show() val name = input_name!!.text.toString() val password = input_password!!.text.toString() // TODO: Implement your own signup logic here. //NCMBUserのインスタンスを作成 val user = NCMBUser() //ユーザ名を設定 user.userName = name //パスワードを設定 user.setPassword(password) //設定したユーザ名とパスワードで会員登録を行う user.signUpInBackground { e -> if (e != null) { //会員登録時にエラーが発生した場合の処理 onSignupFailed() } else { android.os.Handler().postDelayed( { // On complete call either onSignupSuccess or onSignupFailed // depending on success onSignupSuccess() // onSignupFailed(); progressDialog.dismiss() }, 3000) } } } private fun onSignupSuccess() { btn_signup!!.isEnabled = true setResult(Activity.RESULT_OK, null) finish() } private fun onSignupFailed() { Toast.makeText(baseContext, "Signup failed", Toast.LENGTH_LONG).show() btn_signup!!.isEnabled = true } private fun validate(): Boolean { var valid = true val name = input_name!!.text.toString() val password = input_password!!.text.toString() if (name.isEmpty() || name.length < 3) { input_name!!.error = "at least 3 characters" valid = false } else { input_name!!.error = null } if (password.isEmpty() || password.length < 4 || password.length > 10) { input_password!!.error = "between 4 and 10 alphanumeric characters" valid = false } else { input_password!!.error = null } return valid } companion object { private const val TAG = "SignupActivity" } }
MainActivity(アプリケーションキー等記載)
package com.nifty.user import android.content.Intent import android.os.Bundle import android.support.v7.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import com.nifty.cloud.mb.core.NCMB import com.nifty.cloud.mb.core.NCMBUser class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //**************** APIキーの設定とSDKの初期化 ********************** NCMB.initialize(this.applicationContext, "7e6d6479ddc9c642f4229d2041c4a6093d2d1f45385c350543523c9b4c328e4f", "c81eea502681d9c069ca4104b98420ff59318b07f76aeec1cca3c816bbf08e87") val intent = Intent(this, LoginActivity::class.java) startActivity(intent) } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. val id = item.itemId if (id == R.id.action_settings) { return true } if (id == R.id.action_logout) { NCMBUser.logoutInBackground { e -> if (e != null) { //エラー時の処理 } } val intent = Intent(this, LoginActivity::class.java) startActivity(intent) return true } return super.onOptionsItemSelected(item) } }
Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo
Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null
でエラー修正方法を探しているところです。
何か心当たりありましたら、ご教授いただけると甚幸の限りです、、、
何卒よろしくお願いいたします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。