こんにちは私はDynamoDB UsersテーブルにcognitoユーザーIDを追加しようとしています。Android:AWS DynamoDBマッパーのnullポインタ例外
したがって、identityManager.javaクラスでは、バックグラウンドで関数を呼び出してテーブルにユーザーを作成しています。
mapper.save(ユーザ)行でNULLポインタ例外が発生していますが、その理由はわかりません。
私はマッパーを作成する場所です:私は、ユーザーの追加関数を呼び出すところ
public class IdentityManager {
DynamoDBMapper mapper;
public IdentityManager() {
mapper = AWSMobileClient.defaultMobileClient().getDynamoDBMapper();
}
これは、次のとおりです。
private void onCognitoSuccess() {
handler.onSuccess(currentIdentityProvider);
// Adds a new user
new addUser().execute();
これは、ユーザーの追加機能である:
public class addUser extends AsyncTask {
@Override
protected Object doInBackground(Object[] params) {
UserDatabaseMappingAdapter user = new UserDatabaseMappingAdapter();
user.setUserID("testUserID");
mapper.save(user);
return null;
}
これはgetter/setterのuserDataBaseMappingAdapterです:
@DynamoDBTable(tableName = "UsersBeta")
public class UserDatabaseMappingAdapter {
private String userid;
@DynamoDBHashKey(attributeName = "UserID")
public String getUserID() {
return userid;
}
public void setUserID(String userid) {
this.userid = userid;
}
そして、これは私が取得しています完全なエラーです:
FATAL EXCEPTION: AsyncTask #2
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
at com.amazonaws.mobile.user.IdentityManager$addUser.doInBackground(IdentityManager.java:522)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run
@LaurentYそれを編集すると、それは私に印を付け、問題の悪い形で私を助けようともしません。 –
ここにコードスニペットが掲載されていますが、なぜそれがnullであるのかはわかりません。完全なコードを投稿してください –