こんにちは、Amazon AWS は初めてで、Android アプリケーション用に DynamoDB をセットアップしようとしています。
http://aws.amazon.com/code/8872061742402990を使用して、Elastic Beanstalk に Anonymous TVM をデプロイしました。
Web ブラウザーから mytvm.elasticbeanstalk.com にアクセスすると、TVM が匿名登録で実行されているというページを読み込むことができます。
- IAM で作成された TVMUser が Elasticbeanstalk にどのようにリンクされているか理解できません。
TVM の src を Android アプリケーションにコピーし、aws の例に示すように同様の手順を実行することで、TVM の使用を開始しました。
TVM が Android アプリで適切に機能しているかどうかを完全に把握できません。awssdk の例を実行してみました。しかし、テーブルにアクセスしたときに Userprefrences アプリケーションがテーブルを作成しないか、DynamoDB で何もしません (aws ddb コンソールから確認できます)。logcat を確認しようとしましたが、エラーは発生しません。
私のアプリケーションでは、以下のコードの putItem() で NullPointerException を取得します。
AmazonDynamoDBClient ddb = HomeActivity.clientManager.ddb(); try{ HashMap< String, AttributeValue > item = new HashMap< String, AttributeValue >(); AttributeValue email = new AttributeValue(testEmail); item.put("email", email); //email and jot are strings and they are fine when printed in Log. AttributeValue atrjot = new AttributeValue().withS(jot); item.put("jot", atrjot); PutItemRequest request = new PutItemRequest().withTableName(PropertyLoader.getInstance().getTableName()).withItem(item); ddb.putItem(request); Log.e("insertJot", "Succeffull!"); }catch (AmazonServiceException ex) { Log.e("insertJot", "error"); HomeActivity.clientManager .wipeCredentialsOnAuthError(ex); }
logcat の 2 つの項目は次のとおりです。
04-12 11:39:00.577: I/TokenVendingMachineService(1161): リクエストの送信: [http://mytvm.elasticbeanstalk.com/registerdevice?uid=e3f2a3dbe19a8b99cc9732a8044ccb08&key=258bec0be21ca04f2bf2464a2c0ae151]
と
04-12 11:39:00.637: W/AmazonTVMClient(1161): トークン自動販売機へのリクエストがコードで失敗しました: [0] メッセージ: [null]
さらに、次の AndroidRuntime エラーが発生します。
04-12 11:39:00.777: D/AndroidRuntime(1161): VM をシャットダウンしています 04-12 11:39:00.777: W/dalvikvm(1161): threadid=1: キャッチされない例外で終了するスレッド (group=0x40a71930) 04 -12 11:39:00.797: E/AndroidRuntime(1161): 致命的な例外: メイン 04-12 11:39:00.797: E/AndroidRuntime(1161): java.lang.NullPointerException
完全な logcat はここで見ることができます: http://pastebin.com/u2eyh2ME
私は長い間この問題に悩まされており、適切なドキュメントや他の場所でのヘルプを見つけることができません。ありがとう!