Amazon web services 使用AWSCredentials创建AmazondynamodClient

Amazon web services 使用AWSCredentials创建AmazondynamodClient,amazon-web-services,android-studio,amazon-dynamodb,Amazon Web Services,Android Studio,Amazon Dynamodb,我们正在为安卓手机开发一款基本游戏,最近已经从EclipseIDE切换到安卓工作室。通过切换,我被迫从aws-java-sdk-1.9.30移动到aws-android-sdk-2.2.0 我曾尝试更新AWS代码,现在正在编译,但在创建AmazonDynamoDBClient时遇到了一个问题 我收到以下运行时错误: Exception in thread "main" java.lang.IllegalArgumentException: no HostnameVerifier specifie

我们正在为安卓手机开发一款基本游戏,最近已经从EclipseIDE切换到安卓工作室。通过切换,我被迫从aws-java-sdk-1.9.30移动到aws-android-sdk-2.2.0

我曾尝试更新AWS代码,现在正在编译,但在创建
AmazonDynamoDBClient
时遇到了一个问题

我收到以下运行时错误:

Exception in thread "main" java.lang.IllegalArgumentException: no HostnameVerifier specified
我不确定我是否在某处遗漏了一步。如果有人能帮我弄清楚是什么导致了这个问题,我将非常感激

另一方面,我能找到的大多数示例,以及我最初编写代码所基于的示例,似乎都是针对aws-java-sdk-1.9.30jars的。如果有人知道我在哪里可以找到适合aws-android-sdk-2.2.0JAR的示例,那将非常有帮助

以下是请求的整个堆栈跟踪:

客户端:com.amazonaws.services.dynamodbv2。AmazonDynamoDBClient@5ef04b5
正在创建匹配详细信息。。。
线程“main”java.lang.IllegalArgumentException中出现异常:未指定HostnameVerifier
位于javax.net.ssl.HttpsURLConnection.setHostnameVerifier(HttpsURLConnection.java:265)
位于com.amazonaws.http.UrlHttpClient.configureConnection(UrlHttpClient.java:169)
位于com.amazonaws.http.UrlHttpClient.createConnection(UrlHttpClient.java:105)
位于com.amazonaws.http.UrlHttpClient.execute(UrlHttpClient.java:60)
在com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:361)
在com.amazonaws.http.AmazonHttpClient.execute上(AmazonHttpClient.java:211)
位于com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:2930)
位于com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.query(AmazonDynamoDBClient.java:1240)
在com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper.query(dynamodbmapper.java:2181)
在com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper.query(dynamodbmapper.java:2137)
在com.towerfield.aws.MatchDetails.getMatchId(MatchDetails.java:201)上
在com.towerfield.aws.MatchDetails。(MatchDetails.java:109)
位于com.towerfield.aws.MatchDetails.main(MatchDetails.java:84)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
进程已完成,退出代码为1
下面是抛出异常的地方(在HTTPSURLConnection.java中):

public void setHostnameVerifier(HostnameVerifier v)
{
如果(v==null)
{
抛出新的IllegalArgumentException(“HostnameVerifier为null”);
}
hostnameVerifier=v;
}
以下是导致运行时错误的相关代码:

静态AmazonDynamoDBClient;
...
BasicAWSCredentials credentials=新的BasicAWSCredentials(“KEY”、“SECRETKEY”);
客户端=新的AmazondynamodClient(凭据);
...
DynamoDBMapper mapper=新的DynamoDBMapper(客户机);
...
List latestReplies=mapper.query(playerListofActiveMatches.class,queryExpression);

以下是我根据要求导入的内容列表:

import com.amazonaws.AmazonServiceException;
导入com.amazonaws.auth.BasicAWSCredentials;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBAttribute;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBHashKey;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.dynamodbmapper;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBQueryExpression;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBRangeKey;
导入com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBTable;
导入com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
导入com.amazonaws.services.dynamodbv2.model.AttributeValue;
导入com.amazonaws.services.dynamodbv2.model.Condition;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;

AWS SDK for Android的DynamoDB示例可在AWS中找到。

1注意:如果要使用静态凭据,最好使用提供的
BasicAWSCredentials
类。第二:请提供完整的堆栈跟踪。第三:你能提供你的软件包进口和可能的出口吗?非常感谢@MikeKobit。我已经完成了你对1、2和3的一半的建议。我会尽快在MCVE上工作。同时,请让我知道我所做的更改是否有助于您评估我的问题。我和我的朋友们非常感谢你们的帮助!