问题是,当我切换到 debug
模式时,我能够运行我的应用程序,但是当我切换到 release
模式时,它会失败 .
例外:
FAILURE: Build failed with an exception.
任务':app:transformClassesWithDexForRelease'的执行失败 . 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:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java''以非零退出值1结束
When i ran the gradle build command with stacktrace then this is what i get
./gradlew app:transformClassesWithDexForRelease --stacktrace
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:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''以非零退出值1结束
例外情况是:
org.gradle.api.tasks.TaskExecutionException:任务':app:transformClassesWithDexForRelease'的执行失败 . 在org.gradle上的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)位于org.gradle.api.internal的org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)上的.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) org.gradle.api.internal.tasks.execution上的.gasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52) .skipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecu org.gradle.execution.taskgraph.DefaultTaskGraphExecuter上的ter.exe执行(ExecuteAtMostOnceTaskExecuter.java:43)org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.exe(DefaultTaskTraphExecuter.java) 185)org.gradle.execution.taskgraph.AbstractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)org.gradle.execution.taskgraph.AbstractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)at org.gradle.execution .taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)atg.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)at org.gradle.execution.DefaultBuildExecuter.access $ 000(DefaultBuildExecuter.jav) a:23)org.gradle.execution.DefaultBuildExecuter $ 1.proceed(DefaultBuildExecuter.java:43)org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)at org.gradle.execution.DefaultBuildExecuter.execute( DefaultBuildExecuter.java:37)org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)org.gradle.initialization.DefaultGradleLauncher $ 4.run(DefaultGradleLauncher.java:154)atg.gradle.internal.Factories $ 1 . 或者org.gradle.internal.progress.DefaultOperationExecutor.run(DefaultBuildOperationExecutor.java:52)org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)中的.create(Factories.java:22) . gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)atg.gradle.initialization.DefaultGradleLauncher.access $ 200(DefaultGradleLauncher.java:32)org.gradle.initialization.DefaultGradleLauncher $ 1.create(DefaultGradleLauncher.java:99)在组织 . gradle.initialization.DefaultGradleLauncher $ 1.create(DefaultGradleLauncher.java:93)org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java) :62)org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)at org.gradle.launcher.exec.InProcessBuildActionExecuter $ DefaultBuildController . 运行(InProcessBuildActionExecuter.java:94)atg.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)at atOrg.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute( ContinBuildActionExecuter.java:78)org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)at org org.gradle.launcher上的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)中的.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)位于org.gradle.launcher.daemon.server的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)上的.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37) .exec.ResetDeprecationLogger.execute(ResetDeprecationLogger . java:26)atg.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:74)at org . org.gradle.launcher.daemon.server.exec上的org.gradle.util.Swapper.swap(Swapper.java:38)中的gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:72)在org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)上的.ForwardClientInput.execute(ForwardClientInput.java:72) (daemonHealthTracker.java:47)org.gradle上的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) org.gradle.launcher.daemon上的org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)中的.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)位于org.gradle.launcher.daemon.server.exec的org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)的.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) .BuildCommandOnly.execute(BuildCommandOnly.java:36)org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute (HintGCAfterBuild.java:41)org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy . java:50)在org.grad的org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:246) le.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)at org.gradle.internal.concurrent.StoppableExecutorImpl $ 1.run(StoppableExecutorImpl.java:40)引起:java.lang.RuntimeException: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 :进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''在com.android.builder.profile.Recorder上以非零退出值1结束$ Block.handleException (Recorder.java:54)com.android.builder.ThreadRecorder $ 1.record(ThreadRecorder.java:57)at com.android.builder.profile.ThreadRecorder $ 1.record(ThreadRecorder.java:47)at com . org.gr上的org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)中的android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173) adle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:220)at org . gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:231)org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:209)at org . gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)... 68更多引起的: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:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''完成在com.android.build.gradle.inns.transform.DexTransform.transform(DexTransform.java:422)com.android.build.gradle.internal.pipeline.TransformTask $ 3.call(TransformTask . )中的非零退出值为1 . java:178)com.android.build.gradle.internal.pipeline.TransformTask $ 3.call(TransformTask.java:174)at com.android.builder.profile.ThreadRecorder $ 1.record(ThreadRecorder.java:55).. .77更多引起:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:Process'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''在com.android.builder.core.AndroidBuilder.runDexer上完成非零退出值1(AndroidBuilder.java: 1472)在com.andro id.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)... 80更多引起:java.util .concurrent.ExecutionException:com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin / java''在com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)中以非零退出值1结束... ... 82更多引起:com.android.ide.common.process.ProcessException :org.gradle.process.internal.ExecException:进程'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java''在com.android中以非零退出值1结束com.android.builder.core.Androi上com.android.builder.core.AndroidBuilder $ 2.call(AndroidBuilder.java:1464)的.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43) dBuilder $ 2.call(AndroidBuilder.java:1456)引起:org.gradle.process.internal.ExecException:处理'命令'/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java' '在org.gradle.process.internal.DefaultExecHandle $ ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)的com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java)中以非零退出值1结束:41)......还有2个
I am using
-
Android Studio 2.0 Beta 6
-
Java版:Java(TM)SE运行时环境(版本1.8.0_73-b02)
-
Gradle版本:com.android.tools.build:gradle:2.0.0-beta6
-
我启用了Multidex
My build.gradle file
apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'
android {
def VERSION_CODE = 52
def VERSION_NAME = "1.0"
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.example.app"
manifestPlaceholders = [appName: "Personal App"]
minSdkVersion 14
targetSdkVersion 23
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
versionCode VERSION_CODE
versionName VERSION_NAME
// Enabling multidex support.
multiDexEnabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
encoding = 'UTF-8'
}
signingConfigs {
livekeystore {
storeFile file('../key.jks')
keyAlias 'livekeystore'
keyPassword '123asd'
storePassword '123asd'
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.burgerking
manifestPlaceholders = [googleMapsKey: "@string/release_google_map_key", appNameSuffix: ""]
}
debug {
applicationIdSuffix '.dev'
debuggable true
minifyEnabled false
shrinkResources false
zipAlignEnabled false
manifestPlaceholders = [googleMapsKey: "@string/debug_google_map_key", appNameSuffix: ' (Dev-' + VERSION_CODE + ')']
}
}
dexOptions {
incremental true
javaMaxHeapSize "4g" // 2g should be also OK
}
useLibrary 'org.apache.http.legacy'
}
repositories {
maven { url 'https://mint.splunk.com/gradle/' }
maven { url "http://dl.bintray.com/populov/maven" }
mavenCentral()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.4.2'
classpath 'com.newrelic.agent.android:agent-gradle-plugin:4.244.0'
}
}
dependencies {
compile 'com.google.code.gson:gson:2.4'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:recyclerview-v7:23.2.0'
compile 'com.android.support:cardview-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-base:8.4.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-maps:8.4.0'
compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.googlecode.libphonenumber:libphonenumber:7.0.5'
compile 'com.facebook.android:facebook-android-sdk:4.1.1'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup:pollexor:2.0.2'
compile 'com.makeramen:roundedimageview:2.1.0'
compile 'com.mcxiaoke.volley:library:1.0.16@aar'
compile files('libs/now-auth-api.jar')
compile 'com.jakewharton:butterknife:5.1.2'
compile 'com.github.ksoichiro:android-observablescrollview:1.2.0'
compile 'io.card:android-sdk:5.3.0'
compile 'com.appboy:android-sdk-ui:1.10.3'
testCompile 'junit:junit:4.11'
testCompile('org.mockito:mockito-core:1.9.5') {
exclude group: 'org.hamcrest'
}
testCompile('org.powermock:powermock-module-junit4:1.5') {
exclude group: 'org.hamcrest'
}
testCompile('org.powermock:powermock-api-mockito:1.6.2') {
exclude group: 'org.hamcrest'
}
compile 'me.grantland:autofittextview:0.2.1'
}
如果我从中移除 minifyEnabled true
,我似乎能够使我的发布版本正常工作 . 为什么会这样,有另一种解决方法
29 回答
我修复了这个代码 .
local.properties
你应该在gradle上做这个改变
如果您在应用程序的defaultConfig中创建
multiDexEnabled = true
,您将获得所需的结果 .对我来说,在我从项目中删除
jar
文件后,问题是 solved . 似乎我的项目中的一个jar
文件使用的是旧版本的google play services
.我确实收到了同样的错误:
我通过以下步骤解决了这个问题:
Note: 4g is 4 Gigabytes and this is a maximum heap size for dex operation.
不需要MULTIDEX,我重复一遍,不需要MULTIDEX
让我详细说明:Multidex基本上是Android附带的工具,如果将其设置为true,那么具有> 64,000种方法的应用程序可以使用稍微改变的构建过程进行编译 . 但是,如果您的错误如下所示,则只需使用multidex:
或者像这样
但这就是 not 这里的情况!这里的问题(至少对我而言)是由build.gradle文件的依赖项引起的 .
THE SOLUTION: 利用特定的依赖关系 - 不要只导入整个依赖关系部分!
例如,如果您需要位置的Play服务依赖项,则只导入它 for location.
DO:
请勿:
可能导致此问题的另一个问题可能是您正在使用的某种外部库,即引用先前版本你的依赖 . 在这种情况下请遵循以下步骤:
转到SDK管理器,并安装依赖项的任何更新
确保build.gradle文件显示最新版本 . 要获取最新版本,请使用以下链接:https://developers.google.com/android/guides/setup
编辑您的库(或安装更新版本,如果存在),以引用最新版本
我知道这个问题已经过时了,但我需要在那里得到这个答案,因为无缘无故地使用multidex可能会导致ANR 's for your app! ONLY use multidex if you'确定你需要它,并且你明白它是什么 .
我自己花了好几个小时试图在没有multidex的情况下解决这个问题,我只是想分享我的发现 - 希望这会有所帮助
我的应用程序中遇到了类似的问题 . 这就是我做的 .
1.在模块:app中为build.gradle添加此内容
所以代码就像:
这对我有用 . 希望这也有助于你:)
在同一个项目中我也使用 Firebase . 因此启用multiDexEnabled可以解决Firebase中针对 Pre Lollipop devices 的另一个问题 . 某些FireBase类未被识别 . ( Unable to get provider com.google.firebase.provider ) .
解决问题的方法解释here.
在应用级别
gradle
的defaultConfig中添加multiDexEnabled
true .将Google Play服务从7.5升级到9.0时出现此错误
出现以下错误:
当我改为
没有错误 . 试试这个
好吧,我相信这个问题得到了回答并被接受了 . 但我要写下我面对的问题以及如何解决它 .
我确实收到了同样的错误:
我没有幸运应用所有设置并获得成功 . 但是当我尝试再次调试项目时 . 这次我得到三个错误(包括上面):
和
那我做了什么?我只是去Android Studio:
File > Invalidate Caches / Restart.. > Invalidate & Restart
快速解决!
额外注意:
我在Gradle控制台中找到的内容:
在Oracle博客上阅读有关它的更多信息Here
删除gradle中的jar文件
同步它
复制该jar并同步它
这对我有用 .
我刚刚将这段代码写入gradle.properties,现在还可以
它只对我使用特定的服务 .
例如,而不是使用:
compile 'com.google.android.gms:play-services:10.0.1'
我用了:
com.google.android.gms:play-services-places:10.0.1
我知道这是一个古老的问题,但仍然存在 . 每次这发生在我身上,都是因为我已经包含了所有的播放服务库 . 只需在build.gradle(模块)文件中将play-services:x.x.x更改为play-service-:x.x.x.
只需将 multiDexEnabled 设置为true就可以了 .
Sol 1: 在
build.gradle
:清理您的项目并重建 .
Sol 2: 在
local.properties
添加,Sol 3
Else add all 3 in your application.
我将jdk更新为1.8.0_74,Adnroid-studio更新为2.1预览1并添加到应用程序文件
我有同样的问题 . 有一天,该计划运作良好,以下情况并非如此 . 我检查了Github我做的改变 . 对我来说,问题出在依赖项中的build.gradle(Module:app):
这条线是造成问题的那条线 . 更改后,应用程序再次正常运行
在
build.gradle
中添加此行在DefaultConfig中添加 multiDexEnabled = true
只需将gradle(模块应用)中的google play服务从9.x.x更改为较低版本8.4.0对我有用
我修好了我添加到我的 project > app > libs android volley.jar我的问题解决了
如果您在更新Google Play服务9.8.0后遇到问题,请将此添加到您的依赖项:
因此,通过添加multiDexEnabled标志,我的解决方案无法解决 . 它实际上是在收到错误消息之前 .
什么解决了我的错误是确保我使用的是所有播放服务库的相同版本 . 在一个库中我有11.8.0但是在应用程序中使用了我使用11.6.0的库,这种差异是导致错误消息的原因 .
因此,不要将您的库更改为特定版本(如之前的答案),也许您想要检查您是否使用相同版本,因为Android Studio会通过警告明确阻止混音版本 .
这发生在我身上,甚至在调试版本上,只是清除了所有模块级别和项目级别的构建文件夹,它工作,是的就是这样 .
在我完成所有这些之后,我真的不知道怎么了,但是虫子消失了:
1
删除
implementation 'com.google.android.gms:play-services:12.0.1'
并添加
2
更新git,jdk,更改Project结构中的JDK位置
3
删除项目中的构建文件夹
4
清理并重建项目
对于那些仍然使用VS-TACO并且有这个问题的人 . 这是由于jar文件的版本不一致而发生的 .
您仍需要在
platforms\android
文件夹中为build.gradle
文件添加更正:最好在
build-extras.gradle
文件(自动链接到build.gradle文件)中进行所有其他更改(如果有),并在platforms/android
文件夹中全部删除,但只留下build-extras.gradle
文件 . 然后只需编译 .我对最新的AndroidStudio(3.2 B1)有随机问题,并尝试了上述所有解决方案 . 我通过禁用“构建类型”中的“Zip Align Enabled”选项来实现它
经过多次努力,我刚刚添加了以下凭证,我成功了
1)app->'proguard-rules.pro'文件
2)并在app - > build.gradle文件中添加
您可以通过将项目ext属性
googlePlayServicesVersion
添加到app/App_Resources/Android/app.gradle
文件来解决此问题,如下所示: