当前位置: 首页 > 知识库问答 >
问题:

尝试使用AWS Amplify从Android应用程序注册时遇到注册错误

陈业
2023-03-14

我正在处理一些注册过程的Android应用程序(原生Android),使用AWS放大和Cognito用户池从这个链接https://aws-amplify.github.io/docs/android/authentication#signup。

我已经做了,直到放大添加验证和放大推送。我的原始文件夹中有配置文件。在实现注册功能后,我在尝试从我的应用程序注册时遇到以下错误:

2019-10-23 19:40:05.317 10740-11563/com。实例myapplication E/登录:注册错误java。lang.NullPointerException:尝试调用虚拟方法“void com”。亚马逊。移动连接器。认知识别提供程序。CognitoUserPool。注册(java.lang.String、java.lang.String、com.amazonaws.mobileconnectors.cognitoidentityprovider.CognitoUserAttributes、java.util.Map、com.amazonaws.mobileconnectors.cognitoidentityprovider.handlers.SignUpHandler)’到com上的空对象引用。亚马逊。可移动的客户AWSMobileClient 11美元。在com上运行(AWSMobileClient.java:1710)。亚马逊。可移动的客户内部的1美元。在java上运行(InternalCallback.java:101)。朗。丝线。运行(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());

                              }
                          });
            }

        });
    }
}

共有1个答案

沙岳
2023-03-14

需要先调用初始化。

 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());
        }
    });
 类似资料:
  • 作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的话,其实是事先需要注册一个应用程序的。Graph 浏览器是特例,因为这个应用程序是微软官方注册好的。而大家在POSTMAN这篇文章中已经看到我注册的自定

  • 作者:陈希章 发表于 2017年3月22日 上一篇 介绍了Microsoft Graph应用程序的一些概念,以及目前还比较普遍的Azure AD 1.0应用程序的注册方式。但正如我多次提到的那样,虽然目前功能还在不断完善,但Azure AD 2.0会逐渐成为主流,它有如下几个优势 Azure AD 2.0 应用程序,既支持访问工作或学校账号,也支持访问个人账号的资源。 注册Azure AD 2.0

  • 小程序 App App(Object) App() 函数用来注册一个小程序。接受一个 Object 参数, App() 必须在 app.js 中调用,且只能调用一次。 Object参数说明: 属性 类型 描述 触发时机 onLaunch Function 生命周期回调—监听小程序初始化 小程序初始化完成时触发(全局只触发一次) onShow Function 生命周期回调—监听小程序显示 小程序启

  • 本文向大家介绍2018年GitHub账户注册图文教程(github从注册到使用),包括了2018年GitHub账户注册图文教程(github从注册到使用)的使用技巧和注意事项,需要的朋友参考一下 GitHub是一个优秀的面向开源及私有软件项目的托管平台,值得我们使用,但因为其不同于我们常见的很多平台,所以刚开始使用时,我们会遇到很多的问题。特此记录下博主自己使用GitHub的过程供自己以后查看,顺

  • 我试图创建一个脚本,用测试用户填充数据库。我不熟悉Django和Python。我不断得到: 以下是输出和错误: 下面是代码: 有没有办法通过使用或其他方式强制用户配置文件创建等待注册表应用程序?

  • 问题内容: 我在Bower注册我的bower.json文件时遇到问题。任何帮助将不胜感激。 当我尝试使用Bower注册我的项目时 我收到错误消息: 我的bower.json的内容很简单(为了解决问题,我删除了空格和换行符): (请注意,该文件中没有?) 这是我运行Bower Register时屏幕上显示的详细信息: 问题答案: 您的Bower json文件(在此处可见:https : //raw.