ข้อผิดพลาดของ Android: การดำเนินการล้มเหลวสำหรับงาน ': app: transformClassesWithDexForRelease'


191

ปัญหาคือฉันสามารถเรียกใช้แอพของฉันเมื่อฉันเปลี่ยนเป็น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

เมื่อฉันรันคำสั่ง gradle build ด้วย stacktrace แล้วนี่คือสิ่งที่ฉันได้รับ

./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$000(DefaultBuildExecuter.java:23)
            at org.gradle.execution.DefaultBuildExecuter$1.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$4.run(DefaultGradleLauncher.java:154)
            at org.gradle.internal.Factories$1.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.access$200(DefaultGradleLauncher.java:32)
            at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)
            at org.gradle.initialization.DefaultGradleLauncher$1.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$2.call(ForwardClientInput.java:74)
            at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.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$1.run(StartBuildOrRespondWithBusy.java:50)
            at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
            at org.gradle.internal.concurrent.StoppableExecutorImpl$1.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$1.record(ThreadRecorder.java:57)
            at com.android.builder.profile.ThreadRecorder$1.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$3.call(TransformTask.java:178)
            at com.android.build.gradle.internal.pipeline.TransformTask$3.call(TransformTask.java:174)
            at com.android.builder.profile.ThreadRecorder$1.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$2.call(AndroidBuilder.java:1464)
            at com.android.builder.core.AndroidBuilder$2.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 Beta 6
  • เวอร์ชัน Java: สภาพแวดล้อมรันไทม์ Java (TM) SE (สร้าง 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จากมัน ทำไมจึงมีวิธีอื่นในการแก้ปัญหา


คุณสามารถโพสต์ไฟล์ build.gradle ของแอปได้หรือไม่
Harisewak

@Harisewak ฉันได้อัปเดตคำถามแล้วโปรดดูได้เลย
Sheraz Ahmad Khilji

ใช่ @Sheraz คุณถูกต้องที่เปลี่ยน minifyEnabled เป็น false แก้ปัญหา ฉันอ่านสิ่งนี้ในเอกสาร: 'คุณต้องเปิดใช้งาน minifyEnabled เพื่อเปิดใช้งานการย่อขนาดโค้ดและลดขนาดทรัพยากรเพื่อเปิดใช้การย่อขนาดทรัพยากร หากคุณยังไม่ได้ใช้ minifyEnabled ตรวจสอบให้แน่ใจว่าคุณได้รับการทำงานก่อนที่จะเพิ่ม shrinkResources ด้วยเนื่องจากคุณอาจต้องแก้ไขไฟล์ ไฟล์ '( tools.android.com/tech-docs/new-build-system/resource-shrinking ) ดูว่าเป็นกรณีนี้หรือไม่
Harisewak

1
@Harisewak มันยังคงไม่ได้แก้ปัญหาถ้าฉันใช้งานด้วยการแก้ปัญหาแล้วฉันจะได้รับข้อผิดพลาดนี้Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef
Sheraz Ahmad Khilji

ฉันมีปัญหาเดียวกันกับโครงการของฉัน ถ้าฉันใช้ com.android.tools.build:gradle:1.3.0 ฉันสามารถคอมไพล์ได้ ทันทีที่ฉันใช้ 2.0.0 มันทำให้ฉันมีปัญหาเดียวกัน
Santacrab

คำตอบ:


186

ฉันแก้ไขมันแค่รหัสนี้

local.properties

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

และคุณควรทำการเปลี่ยนแปลงนี้ในการไล่ระดับ

defaultConfig {
    applicationId "yourProjectPackage"
    minSdkVersion 15
    versionCode 1
    versionName "1.0"
    targetSdkVersion 23

    multiDexEnabled true //important
}

4
"local.properties" เป็นชื่อไฟล์หรือค่าการกำหนดค่าหรือไม่? มันอยู่ที่ไหน (เช่น: ในโฟลเดอร์ใด) ภายในโครงการ?
Ulysses Alves

1
ไฟล์ local.properties ไปในระดับรากของโครงการ หากคุณมีปัญหาเกี่ยวกับ multiDex -> developer.android.com/studio/build/multidex.html
aemre

ฉันเพิ่งแทรก multiDexEnabled จริงใน build.gradle ของฉันและเวทมนตร์ก็ทำ ขอบคุณ.
Marcelo Gumiero

ฉันไม่รู้ว่าทั้งหมดนี้หมายถึงอะไร แต่มันใช้ได้สำหรับฉัน!
DaveNOTDavid

API การ <21 multiDexEnabledโดยไม่ต้องขยายApplicationชั้นเรียนจากMultiDexApplicationจะนำไปสู่NoClassDefFoundErrors
Miha_x64

82

หากคุณกำหนดค่าเริ่มต้นกำหนดให้multiDexEnabled = trueแอพคุณจะได้ผลลัพธ์ที่ต้องการ

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 22
    multiDexEnabled = true
}

นั่นไม่ใช่ขั้นตอนเดียวในการอนุญาตให้ Multidex และคุณจำเป็นต้องใช้มันเมื่อคุณเห็นDexExceptionแล้ว developer.android.com/studio/build/multidex.html
OneCricketeer

45

สำหรับฉันปัญหาได้รับการแก้ไขหลังจากที่ฉันลบjarไฟล์ออกจากโครงการของฉัน ดูเหมือนว่าหนึ่งในไฟล์ภายในโครงการของฉันใช้รุ่นเก่าjargoogle play services


ปัญหาเดียวกันกับ jackrabbit-standalone-2.12.2.jar ถ้าฉันเพิ่มลงในโครงการปัญหาก็จะเพิ่มขึ้น
Alexeev Valeriy

1
@ MikeOx ฉันอัปเดตเครื่องมือ Android บางตัวและด้วยเหตุนี้ฉันจึงลงเอยด้วยไฟล์ jar สองสามเวอร์ชันเช่น mockable-android-24.jar และ mockable-android-25.jar การลบรายการที่เก่ากว่าแก้ไขข้อผิดพลาดของการสร้างเหล่านี้ให้ฉัน
parvus

แต่ฉันไม่ได้ใช้ไฟล์ jar ใด ๆ ทำไมฉันถึงต้องเผชิญกับปัญหานี้
Mr. Mad

15
คุณช่วยอธิบายรายละเอียดเพิ่มเติมเกี่ยวกับการแก้ปัญหานี้ได้
ไหม

@IvanMilisavljevic คุณสามารถใช้ Gradle ได้ตอนนี้ไม่ใช่ไฟล์ JAR Developers.google.com/android/guides/setup#split
OneCricketeer

39

ฉันได้รับข้อผิดพลาดเดียวกันด้วย:

ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอป: 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: กระบวนการ 'คำสั่ง' C: \ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe '' เสร็จสิ้นด้วยค่าทางออกที่ไม่ใช่ศูนย์ 1

ดีฉันแก้ไขปัญหานี้ด้วยความช่วยเหลือของขั้นตอนต่อไปนี้:

  1. เปิด build.gradle ของแอป (ไม่ใช่อันที่อยู่ในรูทโปรเจค) และเพิ่ม:

    android {
    //snippet
    //add this into your existing 'android' block
    
        dexOptions {
        javaMaxHeapSize "4g"
        }
    
    //snip
    }
  2. ลองสร้างของคุณอีกครั้ง

หมายเหตุ: 4g คือ 4 กิกะไบต์และนี่คือขนาดฮีปสูงสุดสำหรับการดำเนินการ dex


บันทึกวันของฉัน! ไชโย!
devhermluna

ดีที่สุด ... ฉันใช้บริการข้ามแดนอัตโนมัติหลายชั่วโมง ... ขอบคุณ!
MbaiMburu

33

ไม่ต้องการ MULTIDEX ฉันทำซ้ำไม่ต้องใช้ MULTIDEX


ให้ฉันทำอย่างละเอียด: Multidex นั้นเป็นเครื่องมือที่มาพร้อมกับ Android และหากคุณตั้งค่าเป็นจริงแอปที่มีวิธีการ 64,000 วิธีสามารถคอมไพล์โดยใช้กระบวนการสร้างที่เปลี่ยนแปลงเล็กน้อย อย่างไรก็ตามคุณจะต้องใช้ multidex หากข้อผิดพลาดของคุณเป็นดังนี้:

ปัญหาในการเขียนผลลัพธ์: มีการอ้างอิงฟิลด์มากเกินไป: 131000; สูงสุดคือ 65536 คุณอาจลองใช้ตัวเลือก --multi-dex

หรือเช่นนี้

การแปลงเป็นรูปแบบ Dalvik ล้มเหลว: ไม่สามารถเรียกใช้ dex: method ID ไม่ได้อยู่ใน [0, 0xffff]: 65536

แต่นั่นไม่ใช่กรณีที่นี่! ปัญหาที่นี่ (สำหรับฉันอย่างน้อย) กำลังเกิดจากการขึ้นต่อกันของไฟล์ build.gradle

การแก้ปัญหา: ใช้ประโยชน์จากการอ้างอิงที่เฉพาะเจาะจง - ไม่เพียงแค่นำเข้าการอ้างอิงทั้งหมด!

ตัวอย่างเช่นหากคุณต้องการการพึ่งพาบริการ Play สำหรับตำแหน่งให้นำเข้าเฉพาะตำแหน่งเท่านั้น

ทำ:

compile 'com.google.android.gms:play-services-location:11.0.4'

ไม่ได้:

compile 'com.google.android.gms:play-services'

ปัญหาอื่นที่อาจเป็นสาเหตุของปัญหานี้อาจเป็นประเภทของไลบรารีภายนอกที่คุณใช้ซึ่งอ้างอิงถึงเวอร์ชันก่อนหน้าของการอ้างอิงของคุณ ทำตามขั้นตอนเหล่านี้ในกรณีนั้น:

  1. ไปที่ผู้จัดการ SDK และติดตั้งการอัปเดตใด ๆ สำหรับการอ้างอิง
  2. ตรวจสอบให้แน่ใจว่าไฟล์ build.gradle ของคุณแสดงเวอร์ชันล่าสุด หากต้องการรับเวอร์ชันล่าสุดให้ใช้ลิงก์นี้: https://developers.google.com/android/guides/setup
  3. แก้ไขไลบรารีของคุณ (หรือติดตั้งเวอร์ชันที่อัปเดตหากมี) เพื่ออ้างอิงเวอร์ชันล่าสุด

ฉันรู้ว่าคำถามนี้เก่า แต่ฉันต้องการคำตอบนี้เพราะใช้ multidex โดยไม่มีเหตุผลอาจทำให้ ANR สำหรับแอปของคุณ! ใช้ Multidex เฉพาะในกรณีที่คุณต้องการและคุณเข้าใจว่ามันคืออะไร

ฉันใช้เวลาหลายชั่วโมงในการพยายามแก้ไขปัญหานี้โดยไม่ต้องทวีคูณและฉันแค่ต้องการแชร์สิ่งที่ฉันค้นพบ - หวังว่าสิ่งนี้จะช่วยได้


ยอดเยี่ยม! ทำงานได้อย่างสมบูรณ์แบบ!
stoefln

1
คุณจะรู้ได้อย่างไรว่าการพึ่งพาเฉพาะใดทำให้เกิดปัญหา ฉันเพิ่มcom.facebook.android:audience-network-sdk:4.+และไม่สามารถสร้างได้ตั้งแต่นั้นมา
Ciberman

คุณบันทึกวันของฉัน!
Rowan

1
คำตอบที่โง่ หากคุณมีการพึ่งพามากคุณจะต้องมีหลาย dex อยู่ดี เพียงเพิ่มไลบรารี kotlin สองสามบริการของ Google ( com.google.android.gms:play-services-*:*) บริการ firebase, crashlytics, gson, androidx (ห้องสมุดสนับสนุน), cardview, recyclerview, android.material: material มันเป็นไปไม่ได้โดยไม่ต้อง DEX MULTI (คุณชอบ capslock หรือไม่ฉันไม่ได้ดังนั้นโปรดอย่าตอบคำถามดังกล่าวที่นี่ในครั้งต่อไป ... )
user155

ร่างกายบางส่วนฉลาดที่นี่! อย่างแน่นอน!, ข้อผิดพลาดที่ไม่ได้เป็น multidex, ข้อผิดพลาดของ Multidex นั้นแตกต่างกันและอาจมาจากการขึ้นต่อกันของบางอย่าง และ @ user155, RUCHIR ไม่รับผิดชอบต่อคุณ DEPENDENCIES ปัญหาและผมชอบ capslocks :)!
โฮส

25

เพิ่มmultiDexEnabled จริงใน defaultConfig gradleคุณในระดับแอป

defaultConfig {
    applicationId "your application id"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
    multiDexEnabled true
}

24

ฉันมีปัญหาที่คล้ายกันในแอพของฉัน นี่คือสิ่งที่ฉันทำ

1. เพิ่มส่วนนี้สำหรับ build.gradle ในโมดูล: แอพ

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ด้วย ดังนั้นการเปิดใช้งาน multiDexEnabled ปล่อยให้เกิดปัญหาอื่นใน Firebase สำหรับอุปกรณ์ Pre อมยิ้ม ไม่พบคลาส FireBase บางคลาส ( ไม่สามารถรับผู้ให้บริการ com.google.firebase.provider )
วิธีการแก้ไขที่อธิบายไว้ที่นี่


minifyEnable จริงให้ฉันยกเว้น - ด้านล่างเป็นคำถามของฉัน, stackoverflow.com/questions/51720018/ โปรดช่วยฉันด้วยสิ่งนี้
Naveen

21

ฉันได้รับข้อผิดพลาดนี้เมื่ออัปเกรดบริการ Google play เป็น 9.0 จาก 7.5

มีข้อผิดพลาดด้านล่างหนึ่งรายการ:

compile 'com.google.android.gms:play-services:9.0.0'

เมื่อฉันเปลี่ยนเป็น

compile 'com.google.android.gms:play-services:7.5.0'

ไม่มีข้อผิดพลาด ลองสิ่งนี้


1
ขอบคุณฉันได้เปลี่ยนรุ่นเพื่อคอมไพล์ 'com.google.android.gms: play-services: 8.4.0' ฉันคิดว่า volley ใช้บริการ Google play เก่า ๆ ที่ไม่สามารถใช้งานกับ play-services:> 9.0
jai_b

3
นี่คือทางออกสำหรับฉัน ปัญหาคือโมดูลของบุคคลที่สามหลายแห่งอ้างอิงบริการการเล่นกับรุ่นที่แตกต่างกันดังนั้นเป็นไปได้อย่างไรที่คาดว่ารุ่นเหล่านี้จะซิงค์กันตลอดเวลา รายละเอียดสถาปัตยกรรมแปลกมาก
Ryan H.

1
คุณไม่ควรใช้สิ่งนี้ โปรดรวบรวมห้องสมุดเหล่านั้นด้วยการคัดเลือก Developers.google.com/android/guides/setup#split
OneCricketeer

14

หลังจากอัปเดตเป็น Android 3.4 ฉันเริ่มได้รับข้อผิดพลาดลองแก้ไขปัญหาทั้งหมดข้างต้น

สาเหตุของปัญหาคือการอัปเดต Android Studio เปิดใช้งานการเรียกใช้ทันทีเปิดการใช้งานทันทีเรียกใช้

ดังนั้นหนึ่งในโซลูชันที่คุณสามารถลองได้คือปิดใช้งานการเรียกใช้ทันทีหากเปิดใช้งานสำหรับคุณให้แก้ไขปัญหาของฉัน


1
ฉันมีปัญหาเดียวกัน ปิดใช้งานการเรียกใช้ทันทีและเปิดใช้งานได้อีกครั้งสำหรับฉัน
Fogh

1
แก้ไขปัญหาของฉันด้วย โปรดทราบ - การเรียกใช้ทันทีมีประโยชน์ดังนั้นฉันหวังว่าจะมีการแก้ไขที่ดีขึ้นในไม่ช้า
SimonH

1
Aaaaarg พวกเขาเปิดใช้งานสิ่งนี้ตลอดเวลาในการอัปเดตและจะทำให้เกิดปัญหามากมาย
Oliver Dixon

1
Jep นี่เป็นสาเหตุของปัญหาสำหรับฉันเช่นกันหลังจากวาง Firebase ในโครงการการปิดใช้งานการเรียกใช้ทันทีในที่สุดก็ช่วยให้ฉันสร้างได้ขอบคุณ
Starwave

1
การปิดใช้งานการเรียกใช้ทันทีทำงานสำหรับฉันด้วยปัญหานี้ ไม่ได้รับข้อผิดพลาดอีกครั้ง
wesley

11

ฉันเชื่อว่าคำถามนี้ได้รับคำตอบและได้รับการยอมรับ แต่ฉันจะเขียนสิ่งที่ฉันเผชิญและฉันจะแก้ไขได้อย่างไร

ฉันได้รับข้อผิดพลาดเดียวกันด้วย:

ข้อผิดพลาด: การดำเนินการล้มเหลวสำหรับงาน ': แอป: 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: กระบวนการ 'คำสั่ง' C: \ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe '' เสร็จสิ้นด้วยค่าทางออกที่ไม่ใช่ศูนย์ 1

ฉันไม่โชคดีที่ใช้การตั้งค่าทั้งหมดและประสบความสำเร็จ แต่เมื่อฉันลอง Debug โครงการอีกครั้ง ครั้งนี้ฉันได้รับสามข้อผิดพลาด (รวมถึงด้านบน):

ข้อผิดพลาด: คำเตือน VM Server ของ Java HotSpot (TM) 64 บิต: CodeCache เต็ม คอมไพเลอร์ถูกปิดการใช้งาน

และ

ข้อผิดพลาด: คำเตือน VM เซิร์ฟเวอร์ Java HotSpot (TM) 64- บิต VM: ลองเพิ่มขนาดแคชรหัสโดยใช้ -XX: ReservedCodeCacheSize =

แล้วฉันทำยังไง ฉันเพิ่งไปที่ Android Studio:

ไฟล์> ใช้งานแคช / รีสตาร์ทไม่ถูกต้อง .. > ทำให้ใช้งานไม่ได้ & เริ่มต้นใหม่

แก้ไขด่วน!

หมายเหตุพิเศษ:

สิ่งที่ฉันพบใน Gradle Console:

: app: incrementalDebugTasks: app: prePackageMarkerForDebug: แอพ: fastDeployDebugExtractor: แอป: generateDebugInstantRunAppInfo: แอป: transformClassesWithDexForDebug เพื่อให้ทำงานได้ดีขึ้น ปัจจุบันมีประมาณ 910 MB สำหรับการสร้างที่เร็วขึ้นเพิ่มขนาดฮีพสูงสุดสำหรับ Gradle daemon เป็นมากกว่า 2048 MB ในการทำชุดนี้ org.gradle.jvmargs = -Xmx2048M ในโครงการ gradle.properties สำหรับข้อมูลเพิ่มเติมโปรดดูที่https://docs.gradle.org/current/userguide/build_environment.html : app: transformClassesWithDexForDebug FAILED

อ่านเพิ่มเติมเกี่ยวกับที่นี่ใน Oracle Blog



8
  1. ลบไฟล์ jar ใน gradle ของคุณ
  2. ซิงค์
  3. คัดลอก jar นั้นแล้วซิงค์

สิ่งนี้ใช้ได้สำหรับฉัน


คุณสามารถเจาะจงไฟล์ jar ได้มากกว่านี้ไหม? มันเป็นไฟล์ jar ในโปรเจคของเราgradle/wrapperหรือไม่?
HendraWD

4
ไม่ทราบว่ามันคืออะไรกับคนที่พูดถึง "ขวด" แต่นั่นไม่ได้อธิบายอะไรเลย
ติดตาม

7

มันทำงานกับฉันโดยใช้บริการเฉพาะเท่านั้น

ตัวอย่างเช่นแทนที่จะใช้:

compile 'com.google.android.gms:play-services:10.0.1'

ฉันใช้:

com.google.android.gms:play-services-places:10.0.1


1
กันที่นี่ ฉันแก้ไขปัญหาด้วยการแทนที่คอมไพล์ 'com.google.android.gms: play-services: 10.2.0' ด้วยการคอมไพล์ 'com.google.android.gms: play-services-location: 10.2.0'
Sukhbir

6

ฉันรู้ว่ามันเป็นคำถามเก่า ๆ แต่ก็ยัง ทุกครั้งที่สิ่งนี้เกิดขึ้นกับฉันนั่นเป็นเพราะฉันได้รวมไลบรารี play-services ทั้งหมดแล้ว เพียงเปลี่ยน play-services: xxx เป็น play-service-: xxx ในไฟล์ build.gradle (โมดูล)


6

โซล 1:ในbuild.gradle:

defaultConfig {
    multiDexEnabled true
}

ทำความสะอาดโครงการของคุณและสร้างใหม่

โซล 2: ในการlocal.propertiesเพิ่ม

org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m

โซล 3

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

อื่นเพิ่มทั้ง 3 ในแอปพลิเคชันของคุณ



3

ฉันได้อัปเดต jdk เป็น 1.8.0_74, Android-studio เป็น 2.1 ดูตัวอย่าง 1 และเพิ่มลงในไฟล์แอปพลิเคชัน

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

2

ผมมีปัญหาเหมือนกัน. วันหนึ่งโปรแกรมทำงานได้อย่างสมบูรณ์แบบ ฉันตรวจสอบ GitHub การเปลี่ยนแปลงที่ฉันทำ สำหรับฉันปัญหาอยู่ที่ build.gradle (Module: app) ในการพึ่งพา:

compile 'com.android.tools.build:gradle:2.1.2'

บรรทัดนี้เป็นสิ่งที่ทำให้เกิดปัญหา หลังจากเปลี่ยนเป็นแอปทำงานอย่างถูกต้องอีกครั้ง


1
ไม่ทำงานโอกาสอื่น ๆ >
Ajay Pandya

1
เปลี่ยนเป็นอะไร
Ruchir Baronia

1
ฉันลบมัน (ตอนนี้ฉันกำลังตรวจสอบอยู่) และมันก็ทำงานต่อไปได้
Sara Alberola

2

เพิ่มบรรทัดนี้ในของคุณ build.gradle

 defaultConfig {
    ............
    aaptOptions.cruncherEnabled = false
    aaptOptions.useNewCruncher = false
    compileOptions.encoding = 'ISO-8859-1'
    multiDexEnabled true
}

4
คุณเพิ่ม "บรรทัด" ใดที่นี่
OneCricketeer

2

ใน DefaultConfig เพิ่มmultiDexEnabled = true

    defaultConfig {
    applicationId "com.test"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
    multiDexEnabled = true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

2

ดังนั้นของฉันไม่ได้รับการแก้ไขด้วยการเพิ่มการตั้งค่าสถานะ multiDexEnabled มันอยู่ที่นั่นก่อนที่จะได้รับข้อความแสดงข้อผิดพลาด

สิ่งที่ได้รับการแก้ไขข้อผิดพลาดสำหรับฉันคือทำให้แน่ใจว่าฉันใช้ไลบรารี play-services ทุกรุ่นเดียวกัน ในห้องสมุดหนึ่งฉันมี 11.8.0 แต่ในแอพที่ใช้ห้องสมุดฉันใช้ 11.6.0 และความแตกต่างนั้นเป็นสิ่งที่ทำให้เกิดข้อผิดพลาด

ดังนั้นแทนที่จะเปลี่ยนไลบรารี่ของคุณเป็นเวอร์ชั่นเฉพาะเช่นคำตอบก่อนหน้านี้บางทีคุณอาจต้องการตรวจสอบว่าคุณใช้เวอร์ชันเดียวกันทั่วทุกเวอร์ชั่นเนื่องจากแอพ Android Studio มีคำแนะนำอย่างชัดเจน


2

หลังจากความพยายามมากมายฉันเพิ่งเพิ่มข้อมูลรับรองด้านล่างและฉันก็ประสบความสำเร็จ

1) ไฟล์ app-> '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'
}

2

ตามค่าเริ่มต้น Android Studio มีขนาดฮีปสูงสุด 1280MB หากคุณกำลังทำงานในโครงการขนาดใหญ่หรือระบบของคุณมี RAM จำนวนมากคุณสามารถปรับปรุงประสิทธิภาพได้โดยการเพิ่มขนาดฮีพสูงสุดสำหรับกระบวนการ Android Studio เช่น Core IDE, Gradle daemon และ Kotlin daemon

หากคุณใช้ระบบ 64 บิตที่มี RAM อย่างน้อย 5 GB คุณสามารถปรับขนาดฮีปสำหรับโปรเจ็กต์ของคุณได้ด้วยตนเอง โดยทำตามขั้นตอนต่อไปนี้:

คลิกไฟล์> การตั้งค่าจากแถบเมนู (หรือ Android Studio> การตั้งค่าบน macOS) คลิกลักษณะและพฤติกรรม> การตั้งค่าระบบ> การตั้งค่าหน่วยความจำ

สำหรับข้อมูลเพิ่มเติมคลิก

https://developer.android.com/studio/intro/studio-config

ป้อนคำอธิบายรูปภาพที่นี่


1

เพียงแค่เปลี่ยนบริการ Google Play ใน gradle (แอพโมดูล) จาก 9.xx เป็นเวอร์ชัน 8.4.0 ที่ต่ำกว่าใช้ได้สำหรับฉัน


นี่เป็นสัญญาณว่ารุ่นอื่น ๆ ของ Google Play Services ที่คุณใช้ไม่ตรงกัน
OneCricketeer


1

หากคุณประสบปัญหาหลังจากอัปเดตบริการ Google Play 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

สิ่งนี้เกิดขึ้นกับฉันแม้กระทั่งในการดีบักบิลด์และเพิ่งล้างโฟลเดอร์โมดูลและโฟลเดอร์บิลด์โปรเจ็คทั้งหมดและใช้งานได้ใช่เช่นนั้น


ทำงานให้ฉันเพียงแค่ตอนนี้
WillC

1

สำหรับผู้ที่ยังใช้ VS-TACO และมีปัญหานี้ สิ่งนี้เกิดขึ้นเนื่องจากความไม่สอดคล้องกันของไฟล์ jar

คุณยังคงต้องเพิ่มการแก้ไขbuild.gradleไฟล์ในplatforms\androidโฟลเดอร์:

 defaultConfig {
        multiDexEnabled true 
 }

 dependencies {
      compile 'com.android.support:multidex:1.0.3'
 }

เป็นการดีกว่าที่จะทำในbuild-extras.gradleไฟล์ (ซึ่งเชื่อมโยงกับไฟล์ build.gradle โดยอัตโนมัติ) พร้อมกับการเปลี่ยนแปลงอื่น ๆ ทั้งหมดของคุณหากมีและลบทั้งหมดในplatforms/androidโฟลเดอร์ แต่ปล่อยไว้เฉพาะbuild-extras.gradleไฟล์เท่านั้น จากนั้นก็คอมไพล์


1

คำตอบเหล่านี้ไม่เหมาะกับฉัน ฉันใช้ Android studio 3.4.1

ฉันสามารถสร้างโครงการได้ แต่สตูดิโอ Android แสดงข้อผิดพลาดนี้เมื่อฉันจะนำไปใช้กับอุปกรณ์มือถือ ปรากฎว่าเป็นความผิด "การรันทันที"

ทำตามคำตอบนี้: https://stackoverflow.com/a/42695197/3197467


0

ฉันไม่รู้จริงๆ แต่ข้อผิดพลาดหายไปหลังจากฉันทำสิ่งนี้ทั้งหมด:

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

ทำความสะอาดและสร้างโครงการใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.