OutOfMemory错误,Android Studio中的库文件太多

时间:2016-03-17 02:50:25

标签: android android-gradle

我正在开发一个使用模块(库项目)的项目。独立两者都工作正常,但当我整合它们时,它们开始在gradle构建中抛出错误。

**任务执行失败':app:transformClassesWithDexForDebug'。

  

com.android.build.api.transform.TransformException:com.android.ide.commom.process.ProcessException:org.gradle.process.internal.ExceException:Process' command' C:\ Program文件\的Java \ jdk1.8.0_65 \斌\ java.exe的"完成非零退出值2 **

我在两个模块中都有几乎相同的库集导入,因为我需要单独放置这些模块的安全问题。

以下是

的build.gradle文件

app:build.gradle

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "*************************"
        multiDexEnabled true
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }



    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile files('libs/khandroid-httpclient-4.2.3.jar')
    compile project(':library')
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.android.support:support-v4:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup:otto:1.3.5'
    compile 'org.jsoup:jsoup:1.8.3'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'commons-codec:commons-codec:1.6'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'com.google.android.gms:play-services-identity:8.4.0'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}

library:build.gradle

    apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        multiDexEnabled true
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.squareup:otto:1.3.5'
    compile 'com.mcxiaoke.volley:library:1.0.19'
    compile 'commons-codec:commons-codec:1.6'


}

我已启用 multidexedenabled true

任何帮助都会很明显。感谢

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。以下是我采取的步骤:

1)在项目的gradle.properties文件中取消注释行

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 

并写下:org.gradle.daemon=true

2)在我的项目模块app:build.gradle中,我删除了库的build.gradle文件中的所有依赖项。