我正在尝试在AWS网站上关注DynamoDB的教程:http://aws.amazon.com/articles/7439603059327617 我下载了该文件,将其导入Eclipse,导入了所有必需的库(或者字面上,github文件附带的所有库),但DynamoDBManager.java会继续给我带来可怕的"导入com.amazon。 ..无法解决"以下行的错误:
import com.amazonaws.services.dynamodbv2.model.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.model.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.model.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.model.DynamoDBScanExpression;
import com.amazonaws.services.dynamodbv2.model.DynamoDBTable;
import com.amazonaws.services.dynamodbv2.model.PaginatedScanList;
但是为所有其他类导入了库,例如
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
import com.amazonaws.services.dynamodbv2.model.DescribeTableResult;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.KeyType;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;
有没有其他人遇到过类似的问题?你能指导我一个正确的方向吗?!
提前谢谢你&阅读!
答案 0 :(得分:1)
我不是百分百肯定,但在挖掘documentation之后,似乎已弃用了无法解析的类,并且不再包含在jar文件中...... 它们仍然存在于源代码文件夹中,但由于它们已被弃用,因此我认为没有必要尝试按照教程...
答案 1 :(得分:1)
Dynamo DB在迁移到DynamoDB V2时进行了许多重大更改(需要更改代码)。
您需要确保安装了最新的SDK并重新使用它 - 在eclipse中,您还需要提及要使用的AWS SDK(将其指向最新版本)。虽然eclipse AWS插件会自动下载最新的SDK,但它不会向我们更新版本号。您需要自己更新。
答案 2 :(得分:1)
我在遵循相关教程时遇到了类似的问题 http://mobile.awsblog.com/post/Tx1U4RV2QI1MVWS/Amazon-DynamoDB-on-Mobile-Part-1-Loading-Data https://github.com/awslabs/aws-sdk-android-samples/tree/master/DynamoDBMapper_UserPreference
我使用的是最新版本的Android Studio(0.8.1)和适用于Android的AWS SDK(1.7.1.1)。您似乎正在使用错误的包路径。
有关
import com.amazonaws.services.dynamodbv2.model.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.model.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.model.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.model.DynamoDBScanExpression;
import com.amazonaws.services.dynamodbv2.model.DynamoDBTable;
import com.amazonaws.services.dynamodbv2.model.PaginatedScanList;
您应该使用com.amazonaws.services.dynamodbv.model
com.amazonaws.services.dynamodbv2.datamodeling
。有关这些软件包的更多证据/文档,您可以查看dynmodbv2 here以查看它们不被弃用。更改您的包裹路径以反映这一点:
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBScanExpression;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
import com.amazonaws.services.dynamodbv2.datamodeling.PaginatedScanList;
并且您应该只需要使用以下之一:
有关AWS SDK for Android中的jar的更多信息,请参阅官方文档here
(如果在下一次修订版中没有修复错误,则应仅适用于适用于1.7.1.1及更低版本的AWS SDK)
我的问题不同之处在于,即使我根据文档获得了正确的包路径,Android Studio的Intellij也无法找到dynamodbv2.datamodeling
,即在键入import com.amazonaws.services.dynamodbv2.
时没有建议数据模型,只有实用程序和模型。尝试import com.amazonaws.services.dynamodbv2.*
也没有解决问题。因此,似乎数据模型包不包含在上面提到的两个包中,理论上它们应该包含在内。要获得数据模型并解决我遇到的相同对象(DynamoDBAttribute,DynamoDBHashKey等)的问题,我必须添加为库/文件依赖项aws-android-sdk-1.7.1.1-ddb-mapper.jar
和aws-android-sdk-1.7.1.1-ddb.jar
并清理我的项目此时Intellij在输入import时可以看到数据模型,示例项目可以编译。
我想你知道如何在平台中导入库,就像你提到的导入一样,但要确保它只是你需要的单个文件,并且你不包括aws-android-sdk-1.7.1.1-debug.jar
或{{1 }} 跟他们。例如,我的Android Studio模块gradle构建文件依赖关系如下所示:
aws-android-sdk-1.7.1.1.jar
我遇到的问题似乎是一个错误,其中ddb和ddb-mapper并未包含在全部包含dependencies {
compile files('libs/aws-android-sdk-1.7.1.1-ddb-mapper.jar')
compile files('libs/aws-android-sdk-1.7.1.1-ddb.jar')
compile files('libs/aws-android-sdk-1.7.1.1-autoscaling.jar')
compile files('libs/aws-android-sdk-1.7.1.1-cloudwatch.jar')
compile files('libs/aws-android-sdk-1.7.1.1-core.jar')
compile files('libs/aws-android-sdk-1.7.1.1-ec2.jar')
compile files('libs/aws-android-sdk-1.7.1.1-elb.jar')
compile files('libs/aws-android-sdk-1.7.1.1-s3.jar')
compile files('libs/aws-android-sdk-1.7.1.1-sdb.jar')
compile files('libs/aws-android-sdk-1.7.1.1-ses.jar')
compile files('libs/aws-android-sdk-1.7.1.1-sns.jar')
compile files('libs/aws-android-sdk-1.7.1.1-sqs.jar')
compile files('libs/aws-android-sdk-1.7.1.1-sts.jar')
}
和aws-android-sdk-1.7.1.1-debug.jar
的内容中。因此,我已经报告了GitHub(https://github.com/aws/aws-sdk-android/issues/18)并希望下一次修订将解决此问题,它将不再具有相关性,您只需要aws-android-sdk-1.7.1.1.jar
或aws-android-sdk-1.7.1.1-debug.jar
答案 3 :(得分:0)
在AWS文档中编写了如何操作:
现有申请 AWS SDK for Android附带的示例是作为设置供您试用的独立项目提供的。要将AWS与现有应用程序一起使用,请执行以下步骤: