2017-12-11 1 views
0

나는이 코드에서 ionic cordova build android --prod --release - 으로 컴파일하려고하는데 이는 동일한 코드 (동일한 원격 리포지토리에서 가져온 것입니다. 같은 커밋, 깨끗한 위치).안드로이드 컴파일 : 어떤 차이가 한 컴퓨터에서 코드를 컴파일 할 수 있지만 다른 컴퓨터에서는 실패 할 수 있습니다.

문제는 다음과 같습니다. 한 컴퓨터에서 명령이 예상대로 .apk 파일을 생성합니다. 다른 컴퓨터에서는 명령이 실패합니다 (질문이 끝나면 오류를 게시합니다).

Android Studio는 거의 동일한 버전이며 (마이너에서는 약간의 차이가 있음), 환경 설정에서 SDK 플랫폼, SDK 도구 및 SDK 업데이트 사이트의 모든 설정이 완전히 동일합니다.

다른 모든 관련 소프트웨어는 완전히 동일한 버전입니다.

C:\Users\my_user>ionic -version 
3.19.0 

C:\Users\my_user>java -version 
java version "1.8.0_151" 

C:\Users\my_user>gradle -v 

------------------------------------------------------------ 
Gradle 4.4 
------------------------------------------------------------ 

Build time: 2017-12-06 09:05:06 UTC 
Revision:  cf7821a6f79f8e2a598df21780e3ff7ce8db2b82 

Groovy:  2.4.12 
Ant:   Apache Ant(TM) version 1.9.9 compiled on February 2 2017 
JVM:   1.8.0_151 (Oracle Corporation 25.151-b12) 
OS:   Windows 10 10.0 amd64 

내가 확인해야하는 컴퓨터에는 어떤 내용이 다를 수 있습니까? 일부 환경 변수 일 수 있습니까? 어느 것?

컴파일 오류는 다음과 같습니다

* What went wrong: 
Execution failed for task ':transformClassesWithDexForRelease'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lorg/apache/cordova/PermissionHelper; 

나는 다음 platforms\android\build.gradle 파일의 defaultConfig 섹션에서 multiDexEnabled true을 추가하여이 문제를 해결하고, 다른 오류 가지고 :

* What went wrong: 
Execution failed for task ':transformClassesWithJarMergingForRelease'. 
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/apache/cordova/PermissionHelper.class 

하는 사이 다를 수 있습니다 무엇을 내가 확인해야 할 컴퓨터들? 일부 환경 변수 일 수 있습니까? 어느 것?

답변

0

발견. 누군가를 돕기 위해 게시.

문제는 다른 코드바 버전이었습니다 (cordova -version로 가져옴). 하나의 컴퓨터에 7.0.1이 있습니다. 이 아니라은 .apk를 만들 수 있습니다. 다른 컴퓨터의 경우 7.1.0 (및 일 수도 있고은 .apk를 만들 수 있음).

관련 문제