2016-06-03 4 views
0

이 내가 푸시 woosh를 설치할 때 일어나는 것이다보관할 내가 pushwoosh를 설치하고 안드로이드로 컴파일 할 때 오류가 : 코르도바

:transformClassesWithDexForDebug 
UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1; 
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579) 
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535) 
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517) 
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) 
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 
    at com.android.dx.command.dexer.Main.run(Main.java:277) 
    at com.android.dx.command.dexer.Main.main(Main.java:245) 
    at com.android.dx.command.Main.main(Main.java:106) 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':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_91.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 1 mins 1.862 secs 
Error: Error code 1 for command: /Users/apple/usd/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/apple/usd/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true 

구축

dependencies { 
     classpath 'com.android.tools.build:gradle:2.1.0' 
    } 

을 요청한 Gradle을 내가 pushwoosh 플러그인을 제거 할 때 종속성 응용 프로그램이 완벽하게 작동합니다

+0

당신이 더/더 자세한 오류 메시지를 제공 할 수 있습니까? 그 명령은 많은 일들을 실행할 수 있고 1 톤 이상 실패 할 수 있습니다. – Machinarius

+0

bulid.gradle 파일에서 의존성을 게시 할 수 있습니까? – Ankur1994a

+0

안녕하세요. 요청한대로 정보를 제공해 주셨습니다. :) –

답변

1

프로젝트에서 사용자 정의 Application 클래스를 사용하는 경우 android.support.multidex.MultiDexApplication에서 상속하여 mult idex 작업.

+0

무슨 뜻인지 자세히 설명해 주시겠습니까? –

+0

@KingsleyMitchell은 프로젝트에서'Application'을 확장하는 커스텀'Application' 클래스를 생성 했습니까? – Ironman

+0

이것은 코도 바 프로젝트이며 생각하는 응용 프로그램이 없습니까? –

0

dex 메서드 개수 제한에 도달했거나 적용되지 않았을 수 있습니다. 당신은 문제가 응용 프로그램을 컴파일하고이 (com.android.dex.DexException과 유사한 오류가 발생하고있는 경우 Java finished with non-zero exit value 2 - Android Gradle

+0

multiDexEnabled를 true로 설정하면 내 gradn이 너무 낮게 나타납니다 –

+0

시도했지만 답은 내가 쓴 것이고 다른 플러그인은 pushwoosh 플러그인과 충돌합니다. –

0

Multidex

: 몇 가지 옵션이 문제를 해결하기 위해 나열이 스레드를 확인하세요 : 여러 개의 덱스 파일 정의 :

예상치 못한 최상위 예외 : com.android.dex.DexException : 여러 dex 파일은 Landroid/support/annotation/AnimRes를 정의합니다. com.android.dx.merge에서 com.android.dx.merge.DexMerger.getSortedTypes (DexMerger.java:554) 에서 com.android.dx.merge.DexMerger.readSortableTypes (DexMerger.java:596) 에서 . DexMerger.mergeClassDefs (DexMerger.java:535) at com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:171) at com.android.dx.merge.DexMerger.merge (DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers (Main.java:502) at com.android.dx.command.dexer.Main.runMonoDex (Main.java:334) at com.android. dx.command.dexer.Main.run (Main.java:277) (com.android.dx.command.dexer.Main.main (Main.java:245) , com.android.dx.command.Main). main (Main.java:106) T 당신이 설치 한 적어도 하나 이상의 다른 플러그인은 android-support 나 play-services-gcm과 같은 종속성을 선포하기 위해 오래된 방법을 사용하고 있습니다. 이로 인해 gradle이 실패하게되고, 어떤 플러그인이 플러그인을 일으켰는지 확인하고 플러그인 작성자에게 업데이트를 요청하여 코드 위치에 대한 종속성을 선언하는 적절한 방법을 사용해야합니다. 코드바 플러그인 사양에 대한 참조를 보려면이 부분을 참조하십시오. 문제를 만들거나 플러그인을 업데이트하도록 요청할 때 유용 할 것입니다.

이 오래된 종속성 관리로 고통받는 일반적인 플러그인은 facebook, google +, 알림, 횡단 보도 및 Google지도와 관련된 플러그인입니다.

0

이 오류는 연결 (덱서) 단계에서 이름이 같은 두 개의 클래스가 있음을 의미합니다.

Multiple dex files define Lcom/google/android/gms/iid/MessengerCompat$1; 

다른 플러그인이 Google Play 서비스 라이브러리를 직접 참조하고있는 것처럼 보입니다. (Pushwoosh 플러그인이하고있는 것처럼)

코르도바에 그것을 참조하는 올바른 방법은 Gradle을 통해 :
https://github.com/Pushwoosh/pushwoosh-phonegap-plugin/blob/master/plugin.xml#L102

단지 (유사 구글 플레이-services.jar 또는 참조하는 다른 플러그인을 찾아 제거 삭제)합니다.

유사 문제 :
https://github.com/Pushwoosh/pushwoosh-phonegap-plugin/issues/179#issuecomment-222638452