我在Ionic中有项目,我正在尝试使用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;
然后我通过在multiDexEnabled true
文件的defaultConfig
部分添加platforms\android\build.gradle
来解决此问题,并出现了另一个错误:
* 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 :(得分:0)
发现问题。发布以防万一。
问题是一个不同的cordova版本(用cordova -version
得到它)。
一台计算机有7.0.1(可以不创建.apk)。
另一台计算机有7.1.0(可以创建.apk)。