[java] com.android.build.transform.api.TransformException

내 앱에서 Google 로그인을 통합하려고하는데 다음 라이브러리를 추가했습니다.

compile 'com.google.android.gms:play-services-identity:8.1.0'
compile 'com.google.android.gms:play-services-plus:8.1.0'

또한 이것을 빌드 빌드 gradle에 추가하십시오.

classpath 'com.google.gms:google-services:1.4.0-beta3'

또한 앱 빌드 gradle에 플러그인을 추가하십시오.

apply plugin: 'com.google.gms.google-services'

그런 다음 필요한 권한을 추가하지만 앱을 실행하려고 할 때이 오류가 발생했습니다.

    Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
    com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: 
    org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0\bin\java.exe'' finished with non-zero exit value 2



답변

multiDexEnabled trueapp build.gradle 파일에 추가 하십시오.

 defaultConfig {
    multiDexEnabled true
}

편집하다:

스티브의 대답을 먼저 시도하십시오 . 자주 발생하거나 첫 번째 단계가 도움 multiDexEnabled이 되지 않은 경우 . 더 깊이 파고 싶어하는 사람들에게는 몇 가지 비슷한 문제가 있습니다 (더 많은 답변이 있음).

: app : dexDebug ExecException이 0이 아닌 종료 값 2로 완료되었습니다.

오류 : ‘: app : dexDebug’작업에 대한 실행이 실패했습니다. com.android.ide.common.process.ProcessException


답변

주의해야 할 또 다른 것은

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

그것은 모든 플레이 서비스를 가져 오며, 단일 덱스 APK의 65535 방법 제한을 초과하는 데는 Hello World가 필요합니다.

필요한 서비스 만 항상 지정하십시오 (예 :

compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'


답변

방금 프로젝트를 정리 한 후 성공적으로 빌드했습니다.


답변

이 오류는 프로젝트에 새로운 방법을 추가했을 때 나타납니다. 나는 65k 메소드 한계에 가깝다는 것을 알았고 프로젝트를 도울 수 있다면 multiDex 지원을 사용하고 싶지 않았습니다.

:app:transformClassesForDexForDebug작업에 사용 가능한 메모리를 늘려서 해결했습니다 . 에 javaMaxHeapSize 를 지정 하여이 작업을 수행 했습니다 gradle.build.

gradle.build

android {
    ...
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }
}

이 문제에 대한 다른 일반적인 솔루션으로 성공하지 못한 후에 이것을 시도했습니다.

  • 프로젝트 실행 clean
  • 프로젝트에서 /app/build/build디렉토리를 수동으로 삭제
  • Gradle Cache 무효화 및 Android Studio 재시작

오류

오류 : 태스크> ‘: app : transformClassesWithDexForDebug’에 대한 실행이 실패했습니다. com.android.build.api.transform.TransformException : com.android.ide.common.process.ProcessException : org.gradle.process.internal.ExecException : Process ‘command’/Library/Java/JavaVirtualMachines/jdk1.8.0_45. jdk / Contents / Home / bin / java ”가 0이 아닌 종료 값 1로 완료되었습니다.

참고 : DEX 작업에 사용 가능한 메모리를 늘리면 메모리 링크 가 낮은 시스템에서 성능 문제가 발생할 수 있습니다 .


답변

또한 Android Studio 1.5.1 및 gradle 1.5.0에서 비슷한 문제에 직면했습니다. 내 앱의 build.gradle 파일에 자동으로 추가 될 수있는 종속성에서 원하지 않는 라이브러리를 제거해야합니다. 하나는 ‘com.google.android.gms : play-services : 8.4.0’입니다. 따라서 모범 사례의 경우 광고 포함과 같은 특정 재생 서비스 라이브러리 만 포함 시키십시오.

dependencies {
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

이기는 하지만

defaultConfig {
    multiDexEnabled true
}

이렇게하면 문제가 해결되지만 gradle 콘솔에 많은 메모가 제공되어 빌드 중에 다른 실제 문제를 찾는 것이 혼란 스럽습니다.


답변

당신은 안드로이드 의 문서를 볼 수 있습니다

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.0"

    defaultConfig {
        ...
        minSdkVersion 14
        targetSdkVersion 21
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

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

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>


답변

AS 1.5.1을 사용하고 있으며 동일한 문제가 발생했습니다. 그러나 프로젝트를 청소하는 것만으로는 효과가 없으므로 무언가를 시도했습니다.

  • 깨끗한 프로젝트
  • AS를 다시 시작
  • 프로젝트 동기화

이것은 나와 함께 일했기 때문에 이것이 도움이되기를 바랍니다.