0

我正在开发一个应用程序,我正在使用 DynamoDBmapper 使用 Amazon DynamoDB。我收到以下错误。

以下是一个logcat:

E/AndroidRuntime: FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: com.amazonaws.org.apache.commons.logging.LogFactory
at com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.DynamoDBMapper.

即使我做了这里建议的一切,我也没有摆脱错误。

有人能帮我吗?

我正在使用安卓工作室。我在 libs 文件夹中添加了 commons-logging.jar。

我不确定我在这里还提到了什么。如果您可以提出特定问题,我将能够回复。

伙计们..请帮忙。已经浪费了一周的时间试图找到解决方案,但还没有任何运气。

AWS Android 开发工具包:2.2.13

构建.gradle:


apply plugin: 'com.android.application'

android {  
    compileSdkVersion 23  
    buildToolsVersion '23.0.3'  
    defaultConfig {  
        applicationId "com.example.lenovo.dynamodb6"  
        minSdkVersion 17  
        targetSdkVersion 23  
        versionCode 1  
        versionName "1.0"  
    }  
    buildTypes {  
        release {  
            minifyEnabled false  
            proguardFiles getDefaultProguardFile('proguard-android.txt'),  'proguard-rules.pro'  
        }  
    }  
    sourceSets {  
        main {  
            resources.srcDirs = ['src/main/java']  
        }  
    }  
    productFlavors {  
    }  

    repositories {  
        jcenter()  
    } }  

dependencies {  
    compile fileTree(dir: 'libs', include: ['*.jar'])  
    testCompile 'junit:junit:4.12'  
    compile files('libs/commons-logging-1.2.jar')  
    compile files('libs/commons-codec-1.6.jar')  
    compile files('libs/jackson-core-2.5.3.jar')  
    compile files('libs/httpcore-4.3.3.jar')  
    compile files('libs/httpclient-4.3.6.jar')  
    compile files('libs/jackson-annotations-2.5.0.jar')  
    compile 'com.android.support:appcompat-v7:23.1.1'  
    compile 'com.amazonaws:aws-android-sdk-core:2.2.13'  
    compile 'com.amazonaws:aws-android-sdk-ddb:2.2.13'  
    compile 'com.amazonaws:aws-android-sdk-ddb-mapper:2.1.8' } 

4

1 回答 1

0

问题是 DynamoDB 映射器的版本不正确。请com.amazonaws:aws-android-sdk-ddb-mapper升级到 2.2.13 或更高版本。AWS Android SDK 库的结构已从 2.1.x 更改为 2.2.x。请不要混合它们。

PS:在 Android 项目中使用 Apache HttpClient 4.3 可能会导致麻烦,因为 Android 有其旧版本的 HttpClient。

于 2016-04-06T17:58:07.083 回答