Java.exe在Android Studio中以非零退出值2结束

时间:2015-12-15 09:27:44

标签: java android android-studio

当我添加 compile'org.apache.httpcomponents:httpmime:4.2.3'之后出现此错误。找不到解决方案我也在默认配置部分尝试了多个dex文件。我还尝试创建另一个用于测试的应用程序,该应用程序已成功运行。

  

错误:任务':app:transformClassesWithDexForDebug'的执行失败。   com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.7.0_79 \ bin \ java.exe''以非零退出值2结束

这是我的 build.gradle 文件。

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            applicationId "com.example.qualwebs.assistme"
            minSdkVersion 19
            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'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.1.1'
        compile 'com.android.support:design:23.1.1'
        compile 'de.hdodenhof:circleimageview:2.0.0'
        compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
        compile 'com.oguzdev:CircularFloatingActionMenu:1.0.2'
        compile 'com.getbase:floatingactionbutton:1.10.1'
        compile 'org.apache.httpcomponents:httpmime:4.2.3'
    }

3 个答案:

答案 0 :(得分:8)

  

Android SDK Build Tools中提供的Gradle Android插件   21.1和更高版本支持multidex作为构建配置的一部分。确保您更新Android SDK Build Tools工具和Android   使用SDK Manager支持存储库到最新版本   尝试为multidex配置您的应用。

设置应用开发项目以使用multidex配置需要您对应用开发项目进行一些修改。特别是您需要执行以下步骤:

  1. 更改Gradle版本配置以启用multidex
  2. 修改您的清单以引用MultiDexApplication类
  3. 修改您的应用Gradle构建文件配置以包含支持库并启用multidex输出。

        android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"
    
        defaultConfig {
            ...
            minSdkVersion 19
            targetSdkVersion 23
            ...
    
            // Enabling multidex support.
            multiDexEnabled true
        }
        ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.1'
    }
    

    在您的清单中,将 multidex 支持库中的 MultiDexApplication 类添加到应用程序元素中。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.android.multidex.myapplication">
        <application
            ...
            android:name="android.support.multidex.MultiDexApplication">
            ...
        </application>
    </manifest>
    

    被修改

    您可以使用

    compile 'org.apache.httpcomponents:httpmime:4.5.1' 
    

    阅读

      

    https://developer.android.com/intl/es/tools/building/multidex.html

答案 1 :(得分:2)

您有multidex文件的问题,请将以下依赖项添加到您的应用Gradle文件中。

compile 'com.android.support:multidex:1.0.1'

同时添加以下行:

defaultConfig {

    applicationId 'pkg'
    minSdkVersion 
    targetSdkVersion 
    versionCode 
    versionName 

    // Enable MultiDexing:  https://developer.android.com/tools/building/multidex.html
    multiDexEnabled true
}

另外在Manifest.xml中添加:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

编辑:

尝试以下方法:

更改设置

  

Ctrl + Alt + S - &gt;编译器 - &gt;摇篮

InVM选项字段写:

  

-Xmx2048m -XX:MaxPermSize = 512m

添加gradle

  

dexOptions {javaMaxHeapSize“2g”}

谢谢.. !!

答案 2 :(得分:0)

这个问题很可能是因为超过了Android强加的65K方法dex限制。这个问题可以通过清理项目,从build.gradle中的依赖项中删除一些未使用的库和方法来解决,或者通过添加multidex支持来解决。

所以,如果你必须保留库和方法,那么你可以通过在gradle配置中声明它来启用多dex支持。

defaultConfig {        
// Enabling multidex support.
multiDexEnabled true
}