嗨,我是 Amazon AWS 的新手,我正在尝试为我的 android 应用程序设置 DynamoDB。
我已经使用以下方式在 Elastic Beanstalk 上部署了匿名 TVM:http: //aws.amazon.com/code/8872061742402990
当我通过网络浏览器访问 mytvm.elasticbeanstalk.com 时,我能够加载显示 TVM 正在匿名注册上运行的页面。
- 我很难理解在 IAM 中创建的 TVMUser 是如何链接到 elasticbeanstalk 的。
我开始使用 TVM,方法是将 tvm 的 src 复制到我的 android 应用程序中,并执行类似 aws 示例中所示的过程。
我无法完全确定我的 TVM 是否与 Android 应用程序一起正常运行。我尝试运行 awssdk 的示例。但是当我点击表或在我的 DynamoDB 上什么都不做时,Userprefrences 应用程序不会创建表(我通过 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 中的两个项目可以提供一些线索:
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): 致命异常: main 04-12 11:39:00.797: E/AndroidRuntime(1161): java.lang.NullPointerException
完整的 logcat 可以在这里看到:http: //pastebin.com/u2eyh2ME
我已经被这个问题困扰了很长时间,并且无法在其他任何地方找到适当的文档或帮助,任何帮助将不胜感激。谢谢!