AWS DynamoDB和Android开发(把项目到表中DynamoDB) [英] AWS DynamoDB and Android Development (Put Item into table in DynamoDB)

查看:228
本文介绍了AWS DynamoDB和Android开发(把项目到表中DynamoDB)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有关于获得项目到DynamoDB表的问题。我试过$ C $词中写道,但应用程序崩溃了,我失去了我有什么下面是可能C $ CS美元的参考。

AddItem方法

 公共无效的AddItem()
    {
        DynamoDB DB =新DynamoDB(客户端);
                表表= db.getTable(tableName值);

        地图<字符串的AttributeValue>添加=新的HashMap<字符串的AttributeValue>();

        //构建项目
        项目项目=新的项目()
            .withPrimaryKey(id_Tesis,206)
            .withString(author_Tesis,20-自行车206)
            .withString(program_Tesis,206描述)
            .withString(super_Tesis,混合)
            .withString(title_Tesis,品牌C公司)
            .withInt(title_Tesis,2004年);

        //写的项目表
        table.putItem(项目);

    }
 

MainActivity.java

 公共无效的onClick(视图v)
            {
                 dbClient.AddItem();
                 Log.i(SYS,好);
            }
 

logcat的错误:

  06-04 13:26:26.749:E / AndroidRuntime(17001):致命异常:主要
06-04 13:26:26.749:E / AndroidRuntime(17001):工艺:com.afdal.ftsmtheses,PID:17001
06-04 13:26:26.749:E / AndroidRuntime(17001):java.lang.NoClassDefFoundError的:com.amazonaws.services.dynamodbv2.document.DynamoDB
06-04 13:26:26.749:E / AndroidRuntime(17001):在com.afdal.ftsmtheses.Update_Table.AddItem(Update_Table.java:54)
06-04 13:26:26.749:E / AndroidRuntime(17001):在com.afdal.ftsmtheses.Admin_Page $ 2.onClick(Admin_Page.java:70)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.view.View.performClick(View.java:4478)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.view.View $ PerformClick.run(View.java:18698)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.os.Handler.handleCallback(Handler.java:733)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.os.Handler.dispatchMessage(Handler.java:95)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.os.Looper.loop(Looper.java:149)
06-04 13:26:26.749:E / AndroidRuntime(17001):在android.app.ActivityThread.main(ActivityThread.java:5257)
06-04 13:26:26.749:E / AndroidRuntime(17001):在java.lang.reflect.Method.invokeNative(本机方法)
06-04 13:26:26.749:E / AndroidRuntime(17001):在java.lang.reflect.Method.invoke(Method.java:515)
06-04 13:26:26.749:E / AndroidRuntime(17001):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
06-04 13:26:26.749:E / AndroidRuntime(17001):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
06-04 13:26:26.749:E / AndroidRuntime(17001):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

您看到这个错误是因为库AWS-java的SDK-dynamodb没有出口到APK的原因。如果你使用Eclipse,请检查您的项目属性 - > Java构建路径 - >订单和出口

在DynamoDB文档API是由AWS的Java SDK提供的,但在AWS SDK为Android不可用。如果您计划在Android上使用SDK,请考虑AWS SDK为Android是Android上经过全面测试,并为Android库的大小,方法计数,和性能方面进行了优化。请参见 http://aws.amazon.com/mobile/sdk/ 了解详情。

I am having problem regarding getting the items into DynamoDB table. I tried the code i wrote but the Apps crashed and i am lost of what have I Below are may codes for references.

AddItem method

public void AddItem()
    {
        DynamoDB db = new DynamoDB(client);
                Table table = db.getTable(tableName);

        Map<String, AttributeValue> add = new HashMap<String, AttributeValue>();

        // Build the item
        Item item = new Item()
            .withPrimaryKey("id_Tesis", 206)
            .withString("author_Tesis", "20-Bicycle 206")
            .withString("program_Tesis", "206 description")
            .withString("super_Tesis", "Hybrid")
            .withString("title_Tesis", "Brand-Company C")   
            .withInt("title_Tesis", 2004);

        // Write the item to the table 
        table.putItem(item);

    }

MainActivity.java

public void onClick(View v) 
            {
                 dbClient.AddItem();
                 Log.i("sys", "Good");  
            }

LOGCAT ERROR:

06-04 13:26:26.749: E/AndroidRuntime(17001): FATAL EXCEPTION: main
06-04 13:26:26.749: E/AndroidRuntime(17001): Process: com.afdal.ftsmtheses, PID: 17001
06-04 13:26:26.749: E/AndroidRuntime(17001): java.lang.NoClassDefFoundError: com.amazonaws.services.dynamodbv2.document.DynamoDB
06-04 13:26:26.749: E/AndroidRuntime(17001):    at com.afdal.ftsmtheses.Update_Table.AddItem(Update_Table.java:54)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at com.afdal.ftsmtheses.Admin_Page$2.onClick(Admin_Page.java:70)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.view.View.performClick(View.java:4478)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.view.View$PerformClick.run(View.java:18698)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.os.Handler.handleCallback(Handler.java:733)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.os.Handler.dispatchMessage(Handler.java:95)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.os.Looper.loop(Looper.java:149)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at android.app.ActivityThread.main(ActivityThread.java:5257)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at java.lang.reflect.Method.invokeNative(Native Method)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at java.lang.reflect.Method.invoke(Method.java:515)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
06-04 13:26:26.749: E/AndroidRuntime(17001):    at dalvik.system.NativeStart.main(Native Method)

解决方案

The reason you see that error is because the library aws-java-sdk-dynamodb isn't exported to the APK. If you use eclipse, please check your project properties -> Java build path -> Order and export.

The DynamoDB document API is offered by AWS Java SDK, but is unavailable in AWS SDK for Android. If you plan to use an SDK on Android, please consider AWS SDK for Android which is fully tested on Android and is optimized for Android in terms of library size, method count number, and performance. See http://aws.amazon.com/mobile/sdk/ for more information.

这篇关于AWS DynamoDB和Android开发(把项目到表中DynamoDB)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆