DynamoDbMapperException: No method annotated?

2020-04-19 06:57发布

问题:

In my android app, I use DynamoDb. I create a class, which is mapped with a table of database. App runs normally in debug. But if I export apk and run app, I get the DynamoDbMapperException:

Caused by: com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMappingException: No method annotated with interface com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBHashKey for class class com.example.myclass.

I use Eclipse and proguard to export apk. I guess proguard causes the problem, because the apk without proguard works fine. Here is my Proguard config:

-keepattributes *Annotation*
-keep public class com.example.myclass

Please help me! I don't know how to solve the problem.

回答1:

Are you using a DynamoDB table?

You need to have a hash key for the class, you should annotate the field with @DynamoDBHashKey, do you accidentally annotated it as @DynamoDBIndexHashKey? If so, you should change it back.

A similar reference can be found here

Android Amazon DynamoDb error in basic action

Edit: Try chaning

-keep public class com.example.myclass

to

-keep public class com.example.myclass {
    *;
}