[英]Sign-up error encounter when try to signup from Android app using AWS Amplify
I am handling some SignUp process for android app (native android), using AWS-Amplify and Cognito user pool from this link " https://aws-amplify.github.io/docs/android/authentication#signup ".
我已經完成了,直到放大添加身份驗證和放大推送。 我的原始文件夾中有配置文件。 實現注冊 function 后,嘗試從我的應用注冊時遇到以下錯誤:
2019-10-23 19:40:05.317 10740-11563/com.example.myapplication E/login: Sign-up error java.lang.NullPointerException: Attempt to invoke virtual method 'void com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserPool. signUp(java.lang.String, java.lang.String, com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes, java.util.Map, com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)' on a null object reference at com .amazonaws.mobile.client.AWSMobileClient$11.run(AWSMobileClient.java:1710) 在 com.amazonaws.mobile.client.internal.InternalCallback$1.run(InternalCallback.Z93F7 25A07423FE1C889F448B33D21F46Z:101) 在 java.lang.Thread.run(Thread.java:764)
有人可以查看我的代碼並提出可能的問題嗎?
package com.example.myapplication;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.amazonaws.mobile.client.AWSMobileClient;
import com.amazonaws.mobile.client.Callback;
import com.amazonaws.mobile.client.UserStateDetails;
import com.amazonaws.mobile.client.results.SignInResult;
import com.amazonaws.mobile.client.results.SignUpResult;
import com.amazonaws.mobile.client.results.UserCodeDeliveryDetails;
import java.util.HashMap;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
private static final String TAG = login.class.getSimpleName();
public String username = "";
public String password ="";
public String ename = "";
private EditText usernameInput;
private EditText passwordInput;
private EditText emailInput;
private EditText givenName;
private EditText familyName;
private EditText phone;
private Button signUp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usernameInput = (EditText) findViewById(R.id.editTextRegUserId);
passwordInput = (EditText) findViewById(R.id.editTextRegUserPassword);
emailInput = (EditText) findViewById(R.id.editTextRegEmail);
signUp = (Button) findViewById(R.id.signUp);
signUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String password = passwordInput.getText().toString();
final String username = usernameInput.getText().toString();
System.out.println("password: " + password);
System.out.println("username: " + username);
final Map<String, String> attributes = new HashMap<>();
attributes.put("username", username);
System.out.println("default user: " + AWSMobileClient.getInstance());
AWSMobileClient.getInstance().signUp(username, password, attributes, null, new Callback<SignUpResult>() {
@Override
public void onResult(final SignUpResult signUpResult) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Log.d(TAG, "Sign-up callback state: " + signUpResult.getConfirmationState());
if (!signUpResult.getConfirmationState()) {
final UserCodeDeliveryDetails details = signUpResult.getUserCodeDeliveryDetails();
//makeToast("Confirm sign-up with: " + details.getDestination());
Toast toast = Toast.makeText(getApplicationContext(), "Confirm sign-up with: " + details.getDestination(), Toast.LENGTH_LONG);
toast.show();
} else {
//makeToast("Sign-up done.");
Toast toast1 = Toast.makeText(getApplicationContext(), "Sign-up done. ", Toast.LENGTH_LONG);
toast1.show();
}
}
});
}
@Override
public void onError(Exception e) {
Log.e(TAG, "Sign-up error", e);
System.out.println("error: "+ e.getLocalizedMessage());
}
});
}
});
}
}
需要先調用初始化。
awsMobileClient.initialize(this, new Callback<UserStateDetails>() {
@Override
public void onResult(UserStateDetails result) {
Log.d("JOE","Start sign up");
startSignUp();
}
@Override
public void onError(Exception e) {
Log.d("JOE","onError sign up"+ e.toString());
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.