微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Android上使用AWS TVM凭证已过期

我正在使用UserPreferenceDemo(示例AWS Android SDK应用程序)中的一些代码.我使示例应用程序正常工作,以便能够创建新的DynamoDB表.但是,当我尝试在我的应用程序中实现相同的代码时,我在AmazonClientManager类中收到日志消息“凭据已过期”,并且我的应用程序崩溃.

这是我用来创建表格的代码.

final Button submit = (Button) findViewById(R.id.bSubmitComplete)
submit.setonClickListener(new View.OnClickListener() {

    public void onClick(View v) {
        Log.i(TAG, "submitBttn clicked.");

        new DynamoDBManagerTask()
        .execute(DynamoDBManagerType.CREATE_TABLE);
    }
});

这是记录消息的代码.

public Response validateCredentials() {

    Response abletoGetToken = Response.SUCCESSFUL;

    if (AmazonSharedPreferencesWrapper
            .areCredentialsExpired(this.sharedPreferences)) {

        synchronized (this) {

            if (AmazonSharedPreferencesWrapper
                    .areCredentialsExpired(this.sharedPreferences)) {

                Log.i(LOG_TAG, "Credentials were expired.");

                AmazonTVMClient tvm = new AmazonTVMClient( this.sharedPreferences, PropertyLoader.getInstance().getTokenvendingMachineURL(), PropertyLoader.getInstance().useSSL() );

                abletoGetToken = tvm.anonymousRegister();

                if (abletoGetToken.requestWasSuccessful()) {

                    abletoGetToken = tvm.getToken();

                    if (abletoGetToken.requestWasSuccessful()) {
                        Log.i(LOG_TAG, "Creating New Credentials.");
                        initClients();
                    }
                }
            }
        }

    } else if (ddb == null) {

        synchronized (this) {

            if (ddb == null) {

                Log.i(LOG_TAG, "Creating New Credentials.");
                initClients();
            }
        }
    }

    return abletoGetToken;
}

解决方法:

简单的解决方法,愚蠢的问题,但是我花了好一会儿来解决这个问题.

卸载并重新安装该应用程序.现在可以了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐