Android Studio构建transformClassesWithJarMergingForDebug错误

时间:2015-12-10 13:27:18

标签: android android-gradle

我在一个我重新创建的新项目中遇到了Android Studio构建问题。请按照我已经完成的工作,如果有人知道如何继续,请告诉我们!

我开始了一个新项目,选择'导航抽屉活动'作为我的初始起点(可能是我猜的任何东西)。 我立刻建立了我的新空'应用程序并在真实设备上调试它(nexus 9)。一切顺利。

然后我添加了一个我想用来创建xlsx文件的office文件创建库,所以我在build.gradle应用程序文件中添加了以下行(在依赖项中):

compile 'org.apache.poi:poi-ooxml:3.13'

我重新同步并且构建正常(几秒钟内)。然后我尝试在真实设备上调试它,但它不再构建(尝试构建需要10倍的时间)并且我收到错误:

  

错误:任务':app:transformClassesWithDexForDebug'执行失败。   com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令' C:\ Program Files \ Java \ jdk1.8.0_25 \ bin \ java.exe& #39;'完成非零退出值1

我看了这个,我看到的每个地方的人都在告诉别人使用" multiDex "。我知道如果你超过65K的方法,这适用。我想POI库我可能会超过这个。在找不到其他替代方案后,我通过在build.gradle应用程序文件中添加以下行来实现multiDex:

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

并将以下行添加到我的清单文件中:

android:name="android.support.multidex.MultiDexApplication"

我认为我已经实现了multiDex ok。该应用程序构建正常,但当我尝试调试它时,我遇到了这个错误(大约需要7秒才能到达):

  

错误:任务':app:transformClassesWithJarMergingForDebug'执行失败。   com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:org / apache / xmlbeans / xml / stream / Location.class

没有其他文件被篡改过。如果我从build.gradle中删除编译POI库行,那么一切正常。我把库重新插入,它以同样的方式失败。 我试图找出如何告诉它忽略xmlbeans中的重复库(再次其他帖子告诉编码员这是需要做的事情)但是我不知道该怎么做,如果是最好的前进方式,即我还应该是multiDex' ing?

我花了几天时间才开始这么做,这是我第一次使用Android Studio - 从Eclipse迁移,因为我已经厌倦了能够毫无理由地构建我的应用程序几天。

有人知道这一切意味着什么......请帮助我!

修改:我已经清理了&重建项目并尝试删除构建文件但无济于事。

计划统计:

Android Studio 1.5.1
Build #AI-141.2456560, built on December 1, 2015
JRE: 1.8.0_25-b18 amd64
JVM: Java HotSpot(TM) 64-Bit Server VM by Oracle Corporation
Gradle ver: 2.8
Android plugin ver 1.5.0

'的build.gradle' app文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.kane.testproject"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    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 'org.apache.poi:poi-ooxml:3.13'
    compile 'com.android.support:multidex:1.0.1'
}

'的AndroidManifest.xml'文件

<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.kane.testproject"
          xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:name="android.support.multidex.MultiDexApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

1 个答案:

答案 0 :(得分:0)

build.gradle(Module app)

中添加以下行
dexOptions {
        javaMaxHeapSize "2g"
    }