0

I am trying to load Phone Number as a string from Dynamodb but it is showing NullPointer Error

Here is My Activity Code in which i am trying to Log the data

public class TokenActivity extends Activity {
    DynamoDBMapper dynamoDBMapper;
    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hello_token);

        AWSMobileClient.getInstance().initialize(this).execute();
        AWSCredentialsProvider credentialsProvider = AWSMobileClient.getInstance().getCredentialsProvider();
        AWSConfiguration configuration = AWSMobileClient.getInstance().getConfiguration();


        AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient(credentialsProvider);

        this.dynamoDBMapper = DynamoDBMapper.builder()
                .dynamoDBClient(dynamoDBClient)
                .awsConfiguration(configuration)
                .build();


        readName();
    }

    public void readName() {
        new Thread(new Runnable() {
            @Override
            public void run() {

                LoginCredentialsDO newsItem = dynamoDBMapper.load(
                        LoginCredentialsDO.class,
                        "userId",
                        "Phone Number");
                // Item read
                  Log.d("News Item:", newsItem.getPhoneNumber());
            }
        }).start();
    }

and LoginCredentialsDO containing methods to retrieve data from Database.

Blockquote

public class LoginCredentialsDO {
    private String _userId;
    private String _phoneNumber;
    private String _emailId;
    private String _name;

    @DynamoDBHashKey(attributeName = "userId")
    @DynamoDBAttribute(attributeName = "userId")
    public String getUserId() {
        return _userId;
    }

    public void setUserId(final String _userId) {
        this._userId = _userId;
    }
    @DynamoDBRangeKey(attributeName = "Phone Number")
    @DynamoDBAttribute(attributeName = "Phone Number")
    public String getPhoneNumber() {
        return _phoneNumber;
    }

    public void setPhoneNumber(final String _phoneNumber) {
        this._phoneNumber = _phoneNumber;
    }
    @DynamoDBAttribute(attributeName = "Email Id")
    public String getEmailId() {
        return _emailId;
    }

    public void setEmailId(final String _emailId) {
        this._emailId = _emailId;
    }
    @DynamoDBAttribute(attributeName = "Name")
    public String getName() {
        return _name;
    }

    public void setName(final String _name) {
        this._name = _name;
    }

}

I am getting NullPointer Exception Error

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.....LoginCredentialsDO.getPhoneNumber()' on a null object reference
        at com......TokenActivity$4.run(TokenActivity.java:153)
        at java.lang.Thread.run(Thread.java:764)

Can anyone explain why I am getting null point error as I have already defined all the variables and the database item which I am accessing is also not null?

Laman Ansari
  • 39
  • 1
  • 7

0 Answers0