Android gradle NoClassDefFoundError : org. apache.http.entity.mime.MultipartEntityBuilder

标签 android gradle noclassdeffounderror

这是我的 build.gradle 文件

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    repositories {
        mavenCentral()
    }

    // Google Play Services
    compile 'com.google.android.gms:play-services:3.2.25'

    // Support Libraries
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.android.support:gridlayout-v7:18.0.0'
    compile 'com.android.support:support-v13:18.0.0'

    // Note: these libraries require the "Google Repository" and "Android Repository"
    //       to be installed via the SDK manager.

    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'

    compile 'org.apache.httpcomponents:httpmime:4.3'
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 18
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

项目构建成功,没有错误,没有警告。

:preBuild UP-TO-DATE                                  
:preDebugBuild UP-TO-DATE  
:preReleaseBuild UP-TO-DATE  
:prepareComActionbarsherlockActionbarsherlock440Library UP-TO-DATE  
:prepareComAndroidSupportGridlayoutV71800Library UP-TO-DATE  
:prepareComGoogleAndroidGmsPlayServices3225Library UP-TO-DATE  
:prepareDebugDependencies             
:compileDebugAidl UP-TO-DATE  
:compileDebugRenderscript UP-TO-DATE  
:generateDebugBuildConfig UP-TO-DATE  
:mergeDebugAssets UP-TO-DATE  
:mergeDebugResources UP-TO-DATE  
:processDebugManifest UP-TO-DATE  
:processDebugResources UP-TO-DATE  
:generateDebugSources UP-TO-DATE  
:nativeLibsToJar UP-TO-DATE  
:compileDebug UP-TO-DATE  
:dexDebug UP-TO-DATE  
:processDebugJavaRes UP-TO-DATE  
:validateDebugSigning             
:packageDebug UP-TO-DATE  
:assembleDebug UP-TO-DATE  
:prepareReleaseDependencies             
:compileReleaseAidl             
:compileReleaseRenderscript             
:generateReleaseBuildConfig UP-TO-DATE  
:mergeReleaseAssets UP-TO-DATE  
:mergeReleaseResources UP-TO-DATE  
:processReleaseManifest UP-TO-DATE  
:processReleaseResources UP-TO-DATE  
:generateReleaseSources             
:compileRelease             
:dexRelease             
:processReleaseJavaRes UP-TO-DATE  
:packageRelease             
:assembleRelease             
:assemble             
:check UP-TO-DATE  
:build             

BUILD SUCCESSFUL

Total time: 39.311 secs

但是当我在模拟器或 USB 设备上运行项目时,我收到错误 NoClassDefFoundError: org.apache.http.entity.mime.MultipartEntityBuilder

此问题仅出现在 org.apache.httpcomponents:httpmime:4.3 和其他库(如 com.actionbarsherlock:actionbarsherlock:4.4.0@aar 没有问题)中

最佳答案

Google 在 android SDK (v18) 中有原生 httpcore 包,这个包是 httpcore:4.2.x 。为了org.apache.httpcomponents:httpmime正常工作它必须具有与 native 相同的版本 httpcoreorg.apache.httpcomponents:httpmime:4.2.1

我下载了httpclient-4.2.1.jar httpmime-4.2.1.jar库到 <project>/libs文件夹。

删除build制作项目之前的文件夹。
这个配置解决了我所有的 httpmime 问题:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

allprojects {
    repositories {
        mavenCentral()
    }
}

dependencies {
    repositories {
        mavenCentral()
    }

    // Google Play Services
    compile 'com.google.android.gms:play-services:3.2.25'

    // Support Libraries
    compile 'com.android.support:support-v4:18.0.0'
    compile 'com.android.support:gridlayout-v7:18.0.0'
    compile 'com.android.support:support-v13:18.0.0'

    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'

    compile fileTree(dir: "libs", include: '*.jar')
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 18
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        debug.setRoot('debug')
    }
}

关于Android gradle NoClassDefFoundError : org. apache.http.entity.mime.MultipartEntityBuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18850357/

相关文章:

Java InetAddress.getByName.isReachable() 替代方案

Android:如何使用 gps 测量距离

android - Gradle 'XXX' 项目刷新失败

java - Gradle多项目-在项目之间共享源代码

java - Play Framework 2.6 : java. lang.ClassNotFoundException : play. libs.F$Promise

java - 有没有办法在android中强制过度滚动发光效果?

Android Studio 备份源到存储库

android - 在我的应用中,如何使用库中使用的相同依赖项(AAR)

java - 运行 JAVA 控制台应用程序时出现 NoClassDefFoundError 错误

android - GreenDao Generator 类在生成模型和 Dao 类时出错。