簡體   English   中英

嘗試使用 AWS Amplify 從 Android 應用程序注冊時遇到注冊錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM