无法从AWSConfiguration读取区域

时间:2018-07-10 11:54:02

标签: android amazon-web-services amazon-dynamodb

我已经开始使用DynamoDB,我已经在Mobile Hub上创建了一个项目,并将awsconfiguration.json粘贴到了Android App中。 我想在UserDetails表内创建一个Item。 我正在使用以下代码实例化AWS和DynamoDB服务。

        AWSMobileClient.getInstance().initialize(this, new AWSStartupHandler() {
        @Override
        public void onComplete(AWSStartupResult awsStartupResult) {

            // Obtain the reference to the AWSCredentialsProvider and AWSConfiguration objects
            credentialsProvider = AWSMobileClient.getInstance().getCredentialsProvider();
            configuration = AWSMobileClient.getInstance().getConfiguration();

            // Add code to instantiate a AmazonDynamoDBClient
            AmazonDynamoDBClient dynamoDBClient = new AmazonDynamoDBClient(credentialsProvider);

            dynamoDBMapper = DynamoDBMapper.builder()
                    .dynamoDBClient(dynamoDBClient)
                    .awsConfiguration(configuration)
                    .build();  //This line is causing exception

            // Use IdentityManager#getUserID to fetch the identity id.
            IdentityManager.getDefaultIdentityManager().getUserID(new IdentityHandler() {
                @Override
                public void onIdentityId(String identityId) {
                    Log.d("YourMainActivity", "Identity ID = " + identityId);

                    // Use IdentityManager#getCachedUserID to
                    //  fetch the locally cached identity id.
                    final String cachedIdentityId =
                            IdentityManager.getDefaultIdentityManager().getCachedUserID();
                }

                @Override
                public void handleError(Exception exception) {
                    Log.d("YourMainActivity", "Error in retrieving the identity" + exception);
                }
            });
        }
    }).execute();

我得到的例外是:

    07-10 15:46:55.466 20392-20392/com.userdetails.userdetails E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.userdetails.userdetails, PID: 20392
    java.lang.IllegalArgumentException: Failed to read Region from AWSConfiguration please check your setup or awsconfiguration.json file
        at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper$Builder.build(DynamoDBMapper.java:328)
        at com.userdetails.userdetails.MainActivity$1.onComplete(MainActivity.java:48)
        at com.amazonaws.mobile.client.AWSMobileClient$2.onComplete(AWSMobileClient.java:164)
        at com.amazonaws.mobile.auth.core.IdentityManager$4.run(IdentityManager.java:635)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)

我尝试用更新后的文件更改awsconfiguration.json文件,但仍然遇到相同的异常。

1 个答案:

答案 0 :(得分:0)

您需要将以下代码段添加到awsconfiguration.json文件中。

"DynamoDBObjectMapper" : {
    "Default" : {
        "Region" : "DYNAMODB-REGION"
    } 
}