我在一个我重新创建的新项目中遇到了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
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'
}
<?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>
答案 0 :(得分:0)
在build.gradle(Module app)
dexOptions {
javaMaxHeapSize "2g"
}