【发布时间】:2017-12-11 23:21:30
【问题描述】:
我在 Ionic 有一个项目,我正在尝试用 ionic cordova build android --prod --release 编译它 - 它是完全相同的代码(从同一个远程存储库中提取,同一个提交,干净的位置)。
问题是:在一台计算机上,该命令按预期生成.apk 文件。
在另一台计算机上,命令失败(在问题结束时,我将发布错误)。
Android Studio 几乎是同一个版本(次要版本略有不同),并且在偏好设置中 SDK Platforms、SDK Tools 和 SDK Update Sites 中的所有设置都完全相同。
所有其他相关软件的版本完全相同。
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
我应该检查的计算机之间有什么不同? 也许一些环境变量?哪些?
【问题讨论】:
标签: android cordova android-studio ionic-framework ionic3