Cordova得到transformClassesWithJarMergingForDebug构建错误

时间:2016-07-18 00:53:30

标签: android cordova ionic-framework build.gradle

我将整个项目复制到一个新目录,然后在新目录中更新了平台和所有SDK(通过Android Studio),我还添加了对Android v4的支持,现在我遇到了构建错误(主要与v4有关) )。原始构建目录仍然正常工作。在我知道复制的应用程序正在干净地构建之前,我不会弄乱原文。

在复制/更新的项目中,我添加了最新的Android平台:

copiedApp产品:> cordova平台添加android @ latest

/ myOrigApp - // Android 5.1.1,在所有SDK更新后都能正常工作。

/ myCopiedApp - // Android 5.2.1,收到以下错误。

我想'我修复了第一个构建错误:错误1: Dex: Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$Acces sibilityServiceInfoVersionImpl;

添加到platform \ adroid \ build.gradle文件:

defaultConfig {
        multiDexEnabled true
}

但我现在收到错误2。

`Execution failed for task ':transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class`

仍在研究这个,但认为它与额外的v4构建文件或需要删除v4文件夹有关,因为gradle正在安装它们,即使没有在gradle中定义(我可以看到)。

1 个答案:

答案 0 :(得分:1)

摘自exchange in a Github issue

这几乎肯定是由包含Android v4支持库的多个实例引起的。

查看已安装的插件phonegap-facebook-plugin 0.12.0 "Facebook Connect" includes it as a JAR

Facebook插件确实需要更新才能使用Gradle,因为使用此JAR文件会导致与使用Android v4支持库的任何其他插件发生冲突 - 似乎其他人遇到类似问题see here

试试这个(see here):

修改plugins/com.phonegap.plugins.facebookConnect/plugin.xml并替换以下行:

<framework src="platforms/android/FacebookLib" custom="true" />

<framework src="com.android.support:support-v4:+" />
<framework src="com.facebook.android:facebook-android-sdk:3.23.0" />

删除并重新添加平台:

cordova platform rm android && cordova platform add android@latest

就个人而言,我会选择最后一个选项,但我也会考虑分配Facebook插件Github repo并将这些更改应用到我的fork,然后将我的forked插件安装到我的本地项目中,以避免丢失这些本地更改,如果你的{ {1}}文件夹因某种原因被删除:

/plugins