Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'
Android- Error:Execution failed for task ':app:transformClassesWithDexForRelease'
问题是,当我切换到 debug
模式时,我可以 运行 我的应用程序,但是当我切换到 release
模式时它失败了。
异常:
**FAILURE: Build failed with an exception.**
> Execution failed for task ':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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
当我 运行 使用 stacktrace 构建 gradle 命令时,这就是我得到的
./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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
*Exception is:*
>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.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[=11=]0(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:154)
at org.gradle.internal.Factories.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
at org.gradle.initialization.DefaultGradleLauncher.access0(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher.create(DefaultGradleLauncher.java:99)
at org.gradle.initialization.DefaultGradleLauncher.create(DefaultGradleLauncher.java:93)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator.run(DaemonStateCoordinator.java:246)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl.run(StoppableExecutorImpl.java:40)
Caused by: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:54)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:57)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:47)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
at 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)
at 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 more
Caused by: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:422)
at com.android.build.gradle.internal.pipeline.TransformTask.call(TransformTask.java:178)
at com.android.build.gradle.internal.pipeline.TransformTask.call(TransformTask.java:174)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:55)
... 77 more
Caused by: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1472)
at com.android.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)
at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)
... 80 more
Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)
... 82 more
Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43)
at com.android.builder.core.AndroidBuilder.call(AndroidBuilder.java:1464)
at com.android.builder.core.AndroidBuilder.call(AndroidBuilder.java:1456)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:41)
... 2 more
我正在使用
- Android Studio 2.0 测试版 6
- Java 版本:Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
- Gradle 版本:com.android.tools.build:gradle:2.0.0-beta6
- 而且我启用了 Multidex
我的build.gradle文件
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
,我似乎能够让我的发布版本正常工作。为什么会这样,有没有别的办法解决
我已将 jdk 更新为 1.8.0_74,Android-studio 为 2.1 预览版 1 并添加到应用程序文件
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
对我来说,在我从项目中删除 jar
文件后,问题 已解决 。似乎我项目中的 jar
文件之一使用的是 google play services
.
的旧版本
我只修复了这段代码。
local.properties
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
你应该在 gradle
上进行更改
defaultConfig {
applicationId "yourProjectPackage"
minSdkVersion 15
versionCode 1
versionName "1.0"
targetSdkVersion 23
multiDexEnabled true //important
}
我在将 Google 播放服务从 7.5
升级到 9.0 时遇到此错误
以下错误:
compile 'com.google.android.gms:play-services:9.0.0'
当我改成
compile 'com.google.android.gms:play-services:7.5.0'
没有错误。试试这个
- 删除 gradle
中的 jar 文件
- 同步它
- 复制那个 jar 并同步它
这对我有用。
我知道这是一个有点老的问题,但仍然如此。
每次我遇到这种情况,都是因为我已经包含了所有的播放服务
图书馆。只需在 build.gradle(模块) 文件
中将 play-services:x.x.x 更改为 play-service-:x.x.x
只需将 gradle(模块应用程序)中的 google 播放服务从 9.x.x 更改为较低版本 8.4.0 对我来说就可以了
我遇到了同样的问题。
有一天,该程序运行完美,而下一个则不然。我检查了 Github 我所做的更改。
对我来说,问题出在依赖项中的 build.gradle (Module:app) 上:
compile 'com.android.tools.build:gradle:2.1.2'
这一行导致了问题。
更改后,应用程序再次正常 运行
好吧,我相信问题已经得到解答并且已经被接受。
但是我会写下我遇到的问题以及我是如何解决的。
我也收到同样的错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 1
我没有幸运地应用所有设置并获得成功。但是当我再次尝试调试项目时。
这次我得到三个错误(包括上面):
Error:Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
和
Error:Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
那我做了什么?
我刚去 Android 工作室:
文件 > 使缓存无效/重新启动.. > 使缓存无效并重新启动
快速修复!
补充说明:
我在 Gradle 控制台中发现的内容:
:app:incrementalDebugTasks
:app:prePackageMarkerForDebug
:app:fastDeployDebugExtractor
:app:generateDebugInstantRunAppInfo
:app:transformClassesWithDexForDebug
To run dex in process, the Gradle daemon needs a larger heap.
It currently has approximately 910 MB.
For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
For more information see https://docs.gradle.org/current/userguide/build_environment.html
:app:transformClassesWithDexForDebug FAILED
在 Oracle 博客Here 上阅读更多相关信息
如果你在应用的defaultConfig中设置multiDexEnabled = true
,你会得到想要的结果。
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
multiDexEnabled = true
}
刚刚把这段代码写进了gradle.properties,现在可以了
org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m
我也收到同样的错误:
Error:Execution failed for task
':app:transformClassesWithDexForDebug'.
com.android.build.api.transform.TransformException:
java.lang.RuntimeException:
com.android.ide.common.process.ProcessException:
java.util.concurrent.ExecutionException:
com.android.ide.common.process.ProcessException:
org.gradle.process.internal.ExecException: Process 'command
'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with
non-zero exit value 1
好吧,我通过以下步骤解决了这个问题:
打开您应用的 build.gradle(不是项目根目录中的应用)并添加:
android {
//snippet
//add this into your existing 'android' block
dexOptions {
javaMaxHeapSize "4g"
}
//snip
}
再次尝试构建。
注意:4g 是 4 GB,这是 dex 操作的最大堆大小。
它仅在使用特定服务时对我有用。
例如代替使用:
compile 'com.google.android.gms:play-services:10.0.1'
我用过:
com.google.android.gms:play-services-places:10.0.1
我修复了我的 我添加到我的 项目 > app > libs android volley.jar
我的问题解决了
将此行添加到您的 build.gradle
defaultConfig {
............
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
compileOptions.encoding = 'ISO-8859-1'
multiDexEnabled true
}
如果您在更新 google 播放服务 9.8.0 后遇到问题,请将其添加到您的依赖项中:
`dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.firebase:firebase-messaging:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
}
我在我的应用程序中遇到了类似的问题。这是我做的。
1.add 这用于模块中的 build.gradle:app
multiDexEnabled = true
所以代码应该是这样的:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example..."
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
这对我有用。希望这对你也有帮助:)
在同一个项目中,我也使用了 Firebase。因此,为 Pre Lollipop 设备 启用 multiDexEnabled 会导致 Firebase 中的另一个问题。一些 FireBase 类 未被识别。 (无法获取提供程序 com.google.firebase.provider)。
解释的解决方法
只需将 multiDexEnabled 设置为 true 即可。
defaultConfig
{
multiDexEnabled true
}
在默认配置中
添加 multiDexEnabled = true
defaultConfig {
applicationId "com.test"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
在应用级别 gradle
.
的 defaultConfig 中添加 multiDexEnabled
true
defaultConfig {
applicationId "your application id"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
不需要 MULTIDEX,我再说一遍,不需要 MULTIDEX
让我详细说明:Multidex 基本上是 Android 附带的工具,如果将其设置为 true,则具有 >64,000 个方法的应用程序可以使用略微改变的构建过程进行编译。但是,如果您的错误如下所示,您只需要使用 multidex:
trouble writing output: Too many field references: 131000; max is
65536. You may try using --multi-dex option.
或者像这样
Conversion to Dalvik format failed: Unable to execute dex: method ID
not in [0, 0xffff]: 65536
但这不是这里的情况!这里的问题(至少对我而言)是由您的 build.gradle 文件的依赖项引起的。
解决方案:
利用特定的依赖项——不要只导入整个部分的依赖项!
例如,如果您需要位置的 Play 服务依赖项,只需导入它 位置。
执行:
compile 'com.google.android.gms:play-services-location:11.0.4'
不要:
compile 'com.google.android.gms:play-services'
可能导致此问题的另一个问题可能是您正在使用某种外部库,它引用了您的依赖项的先前版本。在这种情况下请按照以下步骤操作:
- 转到 SDK 管理器,安装所有依赖项的更新
- 确保您的 build.gradle 文件显示最新版本。要获取最新版本,请使用此 link:
https://developers.google.com/android/guides/setup
- 编辑您的库(或安装更新版本(如果存在))以引用最新版本
我知道这个问题很老了,但是我需要 得到这个答案,因为无缘无故地使用 multidex 可能会导致您的应用出现 ANR!仅当您确定需要并且了解它是什么时才使用 multidex。
我自己花了几个小时试图在没有 multidex 的情况下解决这个问题,我只是想分享我的发现——希望这对您有所帮助
太阳 1: 在 build.gradle
:
defaultConfig {
multiDexEnabled true
}
清理你的项目并重建。
Sol 2: 在 local.properties
添加,
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
太阳 3
compile 'com.android.support:multidex:1.0.1'
否则将所有 3 个都添加到您的应用程序中。
所以,我的问题并没有通过添加 multiDexEnabled 标志得到解决。它实际上在收到错误消息之前就在那里。
为我解决错误的是确保我使用的是所有 play-services 库的相同版本。
在一个库中,我有 11.8.0,但在使用该库的应用程序中,我使用的是 11.6.0,这种差异是导致错误消息的原因。
因此,与其像以前的答案那样将您的库更改为特定版本,不如检查一下您是否一直在使用相同的版本,因为 Android Studio 通过警告明确不鼓励混合版本。
我什至在调试构建时也遇到过这种情况,只是清除了所有模块级别和项目级别的构建文件夹并且它起作用了,是的,就像那样。
我真的不知道怎么做,但是在我完成所有这些之后错误消失了:
1
删除implementation 'com.google.android.gms:play-services:12.0.1'
并添加
implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-places:12.0.1'
2
更新 git、jdk、更改 JDK 在项目结构中的位置
3
删除我项目中的构建文件夹
4
清理并重建项目
对于仍在使用 VS-TACO 并遇到此问题的用户。这是由于jar文件版本不一致造成的。
您仍然需要对 platforms\android
文件夹中的 build.gradle
文件添加更正:
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.3'
}
最好在 build-extras.gradle
文件(自动链接到 build.gradle 文件)中进行所有其他更改(如果有),并删除 platforms/android
文件夹中的所有内容,但保留只有 build-extras.gradle
个文件。然后编译即可。
我在使用最新的 AndroidStudio (3.2 B1) 时遇到随机问题,并尝试了上述所有解决方案。我通过禁用 "Build Types"
中的 "Zip Align Enabled" 选项让它工作
经过大量努力,我刚刚添加了以下凭据,我成功了
1) 应用-> 'proguard-rules.pro' 文件
-ignorewarnings
-keep class * {
public private *;
}
2) 并且还在应用程序中添加 -> build.gradle 文件
android {
...........................
defaultConfig {
..................
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled true
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
innerTest {
matchingFallbacks = ['debug', 'release']
}
}
...................................................
}
dependencies {
..................................
implementation 'com.android.support:multidex:1.0.2'
}
您可以通过将项目分机 属性 googlePlayServicesVersion
添加到 app/App_Resources/Android/app.gradle
文件来解决此问题,如下所示:
project.ext {
googlePlayServicesVersion = "+"
}
对我来说,这是一个未实现的 parcelable class,没有数据类型 [Any];因此,在模型class 的parcelable 实现中创建了一个TODO() 构造函数。
希望对大家有所帮助。
@SerializedName("firstTxnDetails")
var firstTxnDetails: Any? = Any()
//in parcelable implementation :
constructor(parcel: Parcel) : this(
parcel.readInt(),
parcel.readLong(),
parcel.readInt(),
parcel.readDouble(),
parcel.readLong(),
TODO("firstTxnDetails"), // -> correct this
parcel.readString(),
parcel.readLong(),
parcel.readParcelable(MasterSavingPlan::class.java.classLoader),
parcel.readInt(),
parcel.readString(),
parcel.readString()) {
}
在我的例子中,在使缓存无效并重新启动 android 工作室后,问题得到解决。要做到这一点,请转到
File -> invalidate cache / Restart
更新到Android3.4后,开始报错,尝试了以上所有解决方法。
问题的根本原因是更新 Android Studio 启用了 Instant 运行。
因此,您可以尝试的解决方案之一是禁用 Instant 运行,如果它已为您启用,则解决了我的问题。
None 这些答案对我有用。我正在使用 Android studio 3.4.1.
我能够构建项目,但是 Android studio 在我打算将其部署到移动设备时显示此错误。原来是"instant runs"错了
按照这个答案:
最好的方法来自 James Riordan 的回答 this thread
这可以通过更新到 Gradle 5.5
来解决
最简单的方法是更新正在使用的包装器:
打开gradle/gradle-wrapper.properties
找到看起来像
的行
distributionUrl=https\://services.gradle.org/distributions/gradle-5.X.X-all.zip
- 将版本改为5.5-all.zip
然后再次尝试 运行 构建。
默认情况下,Android Studio 的最大堆大小为 1280MB。如果您正在处理一个大型项目,或者您的系统有大量 RAM,您可以通过增加 Android Studio 进程的最大堆大小来提高性能,例如核心 IDE、Gradle 守护进程和 Kotlin 守护进程。
如果您使用至少有 5 GB RAM 的 64 位系统,您还可以手动调整项目的堆大小。为此,请按照下列步骤操作:
单击菜单栏中的文件 > 设置(或 Android Studio > macOS 上的首选项)。单击外观和行为 > 系统设置 > 内存设置。
有关更多信息,请单击
https://developer.android.com/studio/intro/studio-config
将此行添加到 ProGuard-rules.pro 文件:
-keepparameternames
这在混淆库时帮助了我。当我将库添加为依赖项时出现 zip 异常。
只需在您的应用程序目录中添加一个"multidex-config.txt":
我知道这是一个老问题,但我花了几天时间查看对我不起作用的解决方案,所以也许这对其他人有帮助。
我的项目有一个插件抛出错误。我不得不删除插件并重新添加它,突然间我可以通过构建过程。
$ cordova add phonegap-plugin-push
$ cordova plugin add phonegap-plugin-push
我只是运行以上就解决了
已弃用
gradle.properties
# ...
android.enableD8.desugaring = true
android.enableIncrementalDesugaring = false
我已尝试 android studio 最大堆大小选项,但在构建发布版本时仍然出现内存不足错误。
所以最后下面的设置在 gradle.properties 文件中对我有用。
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=5120m -XX:+HeapDumpOnOutOfMemoryError
问题是,当我切换到 debug
模式时,我可以 运行 我的应用程序,但是当我切换到 release
模式时它失败了。
异常:
**FAILURE: Build failed with an exception.**
> Execution failed for task ':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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
当我 运行 使用 stacktrace 构建 gradle 命令时,这就是我得到的
./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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
*Exception is:*
>org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.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[=11=]0(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:154)
at org.gradle.internal.Factories.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:151)
at org.gradle.initialization.DefaultGradleLauncher.access0(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher.create(DefaultGradleLauncher.java:99)
at org.gradle.initialization.DefaultGradleLauncher.create(DefaultGradleLauncher.java:93)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)
at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator.run(DaemonStateCoordinator.java:246)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl.run(StoppableExecutorImpl.java:40)
Caused by: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:54)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:57)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:47)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:173)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:244)
at 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)
at 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 more
Caused by: 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: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:422)
at com.android.build.gradle.internal.pipeline.TransformTask.call(TransformTask.java:178)
at com.android.build.gradle.internal.pipeline.TransformTask.call(TransformTask.java:174)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:55)
... 77 more
Caused by: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1472)
at com.android.builder.core.AndroidBuilder.convertByteCode(AndroidBuilder.java:1389)
at com.android.build.gradle.internal.transforms.DexTransform.transform(DexTransform.java:250)
... 80 more
Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.builder.core.AndroidBuilder.runDexer(AndroidBuilder.java:1456)
... 82 more
Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:43)
at com.android.builder.core.AndroidBuilder.call(AndroidBuilder.java:1464)
at com.android.builder.core.AndroidBuilder.call(AndroidBuilder.java:1456)
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_73.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:367)
at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:41)
... 2 more
我正在使用
- Android Studio 2.0 测试版 6
- Java 版本:Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
- Gradle 版本:com.android.tools.build:gradle:2.0.0-beta6
- 而且我启用了 Multidex
我的build.gradle文件
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
,我似乎能够让我的发布版本正常工作。为什么会这样,有没有别的办法解决
我已将 jdk 更新为 1.8.0_74,Android-studio 为 2.1 预览版 1 并添加到应用程序文件
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
对我来说,在我从项目中删除 jar
文件后,问题 已解决 。似乎我项目中的 jar
文件之一使用的是 google play services
.
我只修复了这段代码。
local.properties
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
你应该在 gradle
上进行更改defaultConfig {
applicationId "yourProjectPackage"
minSdkVersion 15
versionCode 1
versionName "1.0"
targetSdkVersion 23
multiDexEnabled true //important
}
我在将 Google 播放服务从 7.5
升级到 9.0 时遇到此错误以下错误:
compile 'com.google.android.gms:play-services:9.0.0'
当我改成
compile 'com.google.android.gms:play-services:7.5.0'
没有错误。试试这个
- 删除 gradle 中的 jar 文件
- 同步它
- 复制那个 jar 并同步它
这对我有用。
我知道这是一个有点老的问题,但仍然如此。 每次我遇到这种情况,都是因为我已经包含了所有的播放服务 图书馆。只需在 build.gradle(模块) 文件
中将 play-services:x.x.x 更改为 play-service-:x.x.x只需将 gradle(模块应用程序)中的 google 播放服务从 9.x.x 更改为较低版本 8.4.0 对我来说就可以了
我遇到了同样的问题。 有一天,该程序运行完美,而下一个则不然。我检查了 Github 我所做的更改。 对我来说,问题出在依赖项中的 build.gradle (Module:app) 上:
compile 'com.android.tools.build:gradle:2.1.2'
这一行导致了问题。 更改后,应用程序再次正常 运行
好吧,我相信问题已经得到解答并且已经被接受。 但是我会写下我遇到的问题以及我是如何解决的。
我也收到同样的错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 1
我没有幸运地应用所有设置并获得成功。但是当我再次尝试调试项目时。 这次我得到三个错误(包括上面):
Error:Java HotSpot(TM) 64-Bit Server VM warning: CodeCache is full. Compiler has been disabled.
和
Error:Java HotSpot(TM) 64-Bit Server VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
那我做了什么? 我刚去 Android 工作室:
文件 > 使缓存无效/重新启动.. > 使缓存无效并重新启动
快速修复!
补充说明:
我在 Gradle 控制台中发现的内容:
:app:incrementalDebugTasks :app:prePackageMarkerForDebug :app:fastDeployDebugExtractor :app:generateDebugInstantRunAppInfo :app:transformClassesWithDexForDebug To run dex in process, the Gradle daemon needs a larger heap. It currently has approximately 910 MB. For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB. To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties. For more information see https://docs.gradle.org/current/userguide/build_environment.html :app:transformClassesWithDexForDebug FAILED
在 Oracle 博客Here 上阅读更多相关信息
如果你在应用的defaultConfig中设置multiDexEnabled = true
,你会得到想要的结果。
defaultConfig {
minSdkVersion 14
targetSdkVersion 22
multiDexEnabled = true
}
刚刚把这段代码写进了gradle.properties,现在可以了
org.gradle.jvmargs=-XX:MaxHeapSize\=2048m -Xmx2048m
我也收到同样的错误:
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_60\bin\java.exe'' finished with non-zero exit value 1
好吧,我通过以下步骤解决了这个问题:
打开您应用的 build.gradle(不是项目根目录中的应用)并添加:
android { //snippet //add this into your existing 'android' block dexOptions { javaMaxHeapSize "4g" } //snip }
再次尝试构建。
注意:4g 是 4 GB,这是 dex 操作的最大堆大小。
它仅在使用特定服务时对我有用。
例如代替使用:
compile 'com.google.android.gms:play-services:10.0.1'
我用过:
com.google.android.gms:play-services-places:10.0.1
我修复了我的 我添加到我的 项目 > app > libs android volley.jar 我的问题解决了
将此行添加到您的 build.gradle
defaultConfig {
............
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false
compileOptions.encoding = 'ISO-8859-1'
multiDexEnabled true
}
如果您在更新 google 播放服务 9.8.0 后遇到问题,请将其添加到您的依赖项中:
`dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.google.firebase:firebase-messaging:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-database:9.8.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.firebase:firebase-crash:9.8.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.google.android.gms:play-services-appindexing:9.8.0'
}
我在我的应用程序中遇到了类似的问题。这是我做的。
1.add 这用于模块中的 build.gradle:app
multiDexEnabled = true
所以代码应该是这样的:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.example..."
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
这对我有用。希望这对你也有帮助:)
在同一个项目中,我也使用了 Firebase。因此,为 Pre Lollipop 设备 启用 multiDexEnabled 会导致 Firebase 中的另一个问题。一些 FireBase 类 未被识别。 (无法获取提供程序 com.google.firebase.provider)。
解释的解决方法
只需将 multiDexEnabled 设置为 true 即可。
defaultConfig
{
multiDexEnabled true
}
在默认配置中 添加 multiDexEnabled = true
defaultConfig {
applicationId "com.test"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
multiDexEnabled = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
在应用级别 gradle
.
multiDexEnabled
true
defaultConfig {
applicationId "your application id"
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
不需要 MULTIDEX,我再说一遍,不需要 MULTIDEX
让我详细说明:Multidex 基本上是 Android 附带的工具,如果将其设置为 true,则具有 >64,000 个方法的应用程序可以使用略微改变的构建过程进行编译。但是,如果您的错误如下所示,您只需要使用 multidex:
trouble writing output: Too many field references: 131000; max is 65536. You may try using --multi-dex option.
或者像这样
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
但这不是这里的情况!这里的问题(至少对我而言)是由您的 build.gradle 文件的依赖项引起的。
解决方案: 利用特定的依赖项——不要只导入整个部分的依赖项!
例如,如果您需要位置的 Play 服务依赖项,只需导入它 位置。
执行:
compile 'com.google.android.gms:play-services-location:11.0.4'
不要:
compile 'com.google.android.gms:play-services'
可能导致此问题的另一个问题可能是您正在使用某种外部库,它引用了您的依赖项的先前版本。在这种情况下请按照以下步骤操作:
- 转到 SDK 管理器,安装所有依赖项的更新
- 确保您的 build.gradle 文件显示最新版本。要获取最新版本,请使用此 link: https://developers.google.com/android/guides/setup
- 编辑您的库(或安装更新版本(如果存在))以引用最新版本
我知道这个问题很老了,但是我需要 得到这个答案,因为无缘无故地使用 multidex 可能会导致您的应用出现 ANR!仅当您确定需要并且了解它是什么时才使用 multidex。
我自己花了几个小时试图在没有 multidex 的情况下解决这个问题,我只是想分享我的发现——希望这对您有所帮助
太阳 1: 在 build.gradle
:
defaultConfig {
multiDexEnabled true
}
清理你的项目并重建。
Sol 2: 在 local.properties
添加,
org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m
太阳 3
compile 'com.android.support:multidex:1.0.1'
否则将所有 3 个都添加到您的应用程序中。
所以,我的问题并没有通过添加 multiDexEnabled 标志得到解决。它实际上在收到错误消息之前就在那里。
为我解决错误的是确保我使用的是所有 play-services 库的相同版本。 在一个库中,我有 11.8.0,但在使用该库的应用程序中,我使用的是 11.6.0,这种差异是导致错误消息的原因。
因此,与其像以前的答案那样将您的库更改为特定版本,不如检查一下您是否一直在使用相同的版本,因为 Android Studio 通过警告明确不鼓励混合版本。
我什至在调试构建时也遇到过这种情况,只是清除了所有模块级别和项目级别的构建文件夹并且它起作用了,是的,就像那样。
我真的不知道怎么做,但是在我完成所有这些之后错误消失了:
1
删除implementation 'com.google.android.gms:play-services:12.0.1'
并添加
implementation 'com.google.android.gms:play-services-location:12.0.1'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
implementation 'com.google.android.gms:play-services-places:12.0.1'
2
更新 git、jdk、更改 JDK 在项目结构中的位置
3
删除我项目中的构建文件夹
4
清理并重建项目
对于仍在使用 VS-TACO 并遇到此问题的用户。这是由于jar文件版本不一致造成的。
您仍然需要对 platforms\android
文件夹中的 build.gradle
文件添加更正:
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.3'
}
最好在 build-extras.gradle
文件(自动链接到 build.gradle 文件)中进行所有其他更改(如果有),并删除 platforms/android
文件夹中的所有内容,但保留只有 build-extras.gradle
个文件。然后编译即可。
我在使用最新的 AndroidStudio (3.2 B1) 时遇到随机问题,并尝试了上述所有解决方案。我通过禁用 "Build Types"
中的 "Zip Align Enabled" 选项让它工作经过大量努力,我刚刚添加了以下凭据,我成功了
1) 应用-> 'proguard-rules.pro' 文件
-ignorewarnings
-keep class * {
public private *;
}
2) 并且还在应用程序中添加 -> build.gradle 文件
android {
...........................
defaultConfig {
..................
multiDexEnabled true
}
buildTypes {
debug {
minifyEnabled true
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
innerTest {
matchingFallbacks = ['debug', 'release']
}
}
...................................................
}
dependencies {
..................................
implementation 'com.android.support:multidex:1.0.2'
}
您可以通过将项目分机 属性 googlePlayServicesVersion
添加到 app/App_Resources/Android/app.gradle
文件来解决此问题,如下所示:
project.ext {
googlePlayServicesVersion = "+"
}
对我来说,这是一个未实现的 parcelable class,没有数据类型 [Any];因此,在模型class 的parcelable 实现中创建了一个TODO() 构造函数。
希望对大家有所帮助。
@SerializedName("firstTxnDetails")
var firstTxnDetails: Any? = Any()
//in parcelable implementation :
constructor(parcel: Parcel) : this(
parcel.readInt(),
parcel.readLong(),
parcel.readInt(),
parcel.readDouble(),
parcel.readLong(),
TODO("firstTxnDetails"), // -> correct this
parcel.readString(),
parcel.readLong(),
parcel.readParcelable(MasterSavingPlan::class.java.classLoader),
parcel.readInt(),
parcel.readString(),
parcel.readString()) {
}
在我的例子中,在使缓存无效并重新启动 android 工作室后,问题得到解决。要做到这一点,请转到
File -> invalidate cache / Restart
更新到Android3.4后,开始报错,尝试了以上所有解决方法。
问题的根本原因是更新 Android Studio 启用了 Instant 运行。
因此,您可以尝试的解决方案之一是禁用 Instant 运行,如果它已为您启用,则解决了我的问题。
None 这些答案对我有用。我正在使用 Android studio 3.4.1.
我能够构建项目,但是 Android studio 在我打算将其部署到移动设备时显示此错误。原来是"instant runs"错了
按照这个答案:
最好的方法来自 James Riordan 的回答 this thread
这可以通过更新到 Gradle 5.5
来解决最简单的方法是更新正在使用的包装器:
打开
gradle/gradle-wrapper.properties
找到看起来像
的行
distributionUrl=https\://services.gradle.org/distributions/gradle-5.X.X-all.zip
- 将版本改为5.5-all.zip
然后再次尝试 运行 构建。
默认情况下,Android Studio 的最大堆大小为 1280MB。如果您正在处理一个大型项目,或者您的系统有大量 RAM,您可以通过增加 Android Studio 进程的最大堆大小来提高性能,例如核心 IDE、Gradle 守护进程和 Kotlin 守护进程。
如果您使用至少有 5 GB RAM 的 64 位系统,您还可以手动调整项目的堆大小。为此,请按照下列步骤操作:
单击菜单栏中的文件 > 设置(或 Android Studio > macOS 上的首选项)。单击外观和行为 > 系统设置 > 内存设置。
有关更多信息,请单击
https://developer.android.com/studio/intro/studio-config
将此行添加到 ProGuard-rules.pro 文件:
-keepparameternames
这在混淆库时帮助了我。当我将库添加为依赖项时出现 zip 异常。
只需在您的应用程序目录中添加一个"multidex-config.txt":
我知道这是一个老问题,但我花了几天时间查看对我不起作用的解决方案,所以也许这对其他人有帮助。
我的项目有一个插件抛出错误。我不得不删除插件并重新添加它,突然间我可以通过构建过程。
$ cordova add phonegap-plugin-push
$ cordova plugin add phonegap-plugin-push
我只是运行以上就解决了
已弃用
gradle.properties
# ...
android.enableD8.desugaring = true
android.enableIncrementalDesugaring = false
我已尝试 android studio 最大堆大小选项,但在构建发布版本时仍然出现内存不足错误。 所以最后下面的设置在 gradle.properties 文件中对我有用。
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=5120m -XX:+HeapDumpOnOutOfMemoryError