我将整个项目复制到一个新目录中,然后在新目录中更新了平台和所有SDK(通过Android Studio),还添加了对Android v4的支持,现在我遇到了构建错误(主要与v4相关)。原始构建目录仍然可以正常工作。在知道复制的应用程序构建良好之前,我不会与原始应用程序混淆。
在复制/更新的项目中,我添加了最新的Android平台:
copyApp:> 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中定义(我可以看到)。
在Github问题中从我们的交流中摘录
几乎可以肯定,这是由包含Android v4支持库的多个实例引起的。
查看已安装的插件,将phonegap-facebook-plugin 0.12.0 "Facebook Connect"
其作为JAR包括在内。
确实需要更新Facebook插件才能使用Gradle,因为使用此JAR文件将与使用Android v4支持库的任何其他插件发生冲突-似乎其他人也遇到了类似的问题,请参见此处。
试试这个(见这里):
编辑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存储库,并将这些更改应用到我的fork中,然后将分叉的插件安装到本地项目中,以避免在/plugins
删除文件夹时丢失这些本地更改。一些理由:
cordova plugin add https://github.com/your_account/phonegap-facebook-plugin.git --save
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句