在Android Studio 2.1.1中构buildAPK文件时发生错误

几天前,我升级了我的Android Studio,现在我面临一个问题。

其实我试图从我的项目中build立一个APK文件来testing我的应用程序在一个真实的设备上,当我点击生成 – “生成应用程序,然后我收到Message Gradle Build中的几个错误。 我不知道为什么会出现这些错误,请详细说明原因。

错误

  1. 错误:将字节码转换为dex时出错:
    原因:com.android.dex.DexException:多个dex文件定义Lcom / android / volley / VolleyError;

  2. 错误:任务“:app:transformClassesWithDexForDebug”的执行失败。 com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process。 internal.ExecException:处理'命令'C:\ Program Files \ Java \ jdk1.8.0_51 \ bin \ java.exe''以非零退出值2结束

build.gradle文件

apply plugin: 'com.android.application' android { signingConfigs { } compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.dovezeal.gapp" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:23.0.1' //compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:support-v4:23.3.0' compile 'com.android.support:design:23.0.1' compile 'com.android.support:design:23.1.1' // Volley compile 'com.android.volley:volley:1.0.0' //compile 'com.mcxiaoke.volley:library:1.0.+' /* compile files('libs/com.mcxiaoke.volley library-1.0.0.jar')*/ // RecyclerView compile 'com.android.support:recyclerview-v7:23.0.+' // A simple way to define and render UI specs on top of your Android UI. compile 'org.lucasr.dspec:dspec:0.1.1' compile files('libs/library-1.0.0.jar') // YouTube Player compile files('libs/YouTubeAndroidPlayerApi.jar') // GOSN /* compile files('libs/gson-2.2.3.jar')*/ } 

编辑 – 1

正如janki gadhiya在她下面的评论中所说,要将minifyEnabled更改minifyEnabled true并尝试在defaultConfig下添加multiDexEnabled true
随着这些变化,上面的错误都消失了,但现在这个错误即将出现。

  1. 错误:任务执行失败:app:transformClassesWithJarMergingForDebug com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复的条目:com / android / volley / Request $ Priority.class

Solutions Collecting From Web of "在Android Studio 2.1.1中构buildAPK文件时发生错误"

build.gradle文件

 apply plugin: 'com.android.application' android { signingConfigs { } compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.dovezeal.gapp" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/license.txt' exclude 'META-INF/notice.txt' } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt') } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:23.0.1' //compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.android.support:support-v4:23.3.0' compile 'com.android.support:design:23.0.1' compile 'com.android.support:design:23.1.1' // as you already compiled gradle for volley here compile 'com.android.volley:volley:1.0.0' // RecyclerView compile 'com.android.support:recyclerview-v7:23.0.+' compile 'org.lucasr.dspec:dspec:0.1.1' // you don't need this so comment the below line. //compile files('libs/library-1.0.0.jar') // YouTube Player compile files('libs/YouTubeAndroidPlayerApi.jar') } 

编辑:解释

您的错误1 – 2 :意味着您的项目中有超过65,000个方法,所以我告诉您将multiDexEnable true设置multiDexEnable true

你的错误3 :意味着你有一个以上的库有类Request$Priority.class ,所以编译器会混淆select哪一个。 所以它显示错误重复条目 。 这将通过packaging options来解决,这会让你使用重复的文件。

在你的build gradle中添加这个

  dexOptions { incremental true javaMaxHeapSize "4g" } packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1' } 

我也得到同样的错误。 当添加编译“com.google.firebase:firebase-ads:10.2.0”,但是当我按照以下步骤删除它时:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.google.firebase:firebase-ads:10.2.0' } apply plugin: 'com.google.gms.google-services'** 

并在BuildVarient中使用debugging模式

我认为这会帮助你。

同时更新firebase任何谷歌播放服务,然后尝试更新所有库。 这对我工作。 希望在某些情况下有效。