首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓gradle NoClassDefFoundError: NoClassDefFoundError

安卓gradle NoClassDefFoundError: NoClassDefFoundError
EN

Stack Overflow用户
提问于 2013-09-17 12:49:42
回答 1查看 4.1K关注 0票数 2

这是我的build.gradle文件

代码语言:javascript
复制
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']
        }
    }
}

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

代码语言:javascript
复制
: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 )中,没有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-15 12:03:04

谷歌在android (v18)中有本地的httpcore包,这个包是httpcore:4.2.x。为了使org.apache.httpcomponents:httpmime正常工作,它必须具有与本机httpcore ie org.apache.httpcomponents:httpmime:4.2.1相同的版本。

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

在“使项目”之前删除build文件夹。

这个配置解决了我使用httpmime时遇到的所有问题:

代码语言:javascript
复制
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')
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18850357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档