建设xamarin.android当CREATEMULTIDEXMAINDEXCLASSLIST错误

2019-09-29 08:11发布

编辑-减少到问题的根源

启用多地塞米松,当我得到这个错误。

CREATEMULTIDEXMAINDEXCLASSLIST:错误:期待类路径分隔“:”前“的.jar”中的参数编号2

我已经跟踪它到包括在ProGuard的命令行这个jar文件:

obj/Debug/__library_projects__/DeviceAPI_Android/library_project_imports/DeviceAPI_Android.Jars.cw-deviceapi(2016.05.16).jar

这是在文件名中这些导致错误的括号内。 我已经与删除这个jar文件在终端提示符下运行命令证明了这一点,和一切工作正常。

所以,问题 - 在这个文件来自哪里? 它是在包? 我无法看到它。

如果我能找到,我应该能够更正名称和建设项目。

我跟踪它到名为DeviceAPI_Android.dll第三方绑定库,它包装一个jar文件,用于控制硬件条形码扫描仪。 JAR文件中确实有其名的支架和日期。

因此,解决方案是一种或多种:

  • 获取绑定库的供应商的新版本有更好的名为jar文件。

  • 重建库自己一个更好的名为jar文件。 潜在的问题,因为我必须创建的转换等从零开始。

  • 调整构建工具/ Makefile文件,使ProGuard的命令行更具弹性,以奇怪的名为jar文件。

样本项目展示的问题是在GitHub上这里 。

版本信息:===的Visual Studio 2017年社区为Mac ===

版本7.1(1297建立)安装UUID:650b4c91-c7f5-4ee5-ad70-6f178f314906运行时:单声道5.2.0.215(d15-3 / da80840)(64位)GTK + 23年2月24日(罗利主题)

Package version: 502000215

=== ===的NuGet

版本:4.3.0.2418

=== .NET核心===

运行时间:未安装SDK:未安装的MSBuild的SDK:/Library/Frameworks/Mono.framework/Versions/5.2.0/lib/mono/msbuild/15.0/bin/Sdks

=== === Xamarin.Profiler

版本:1.5.5位置:/应用/ Xamarin Profiler.app/Contents/MacOS/Xamarin探查

=== Xamarin.Android ===

版本:7.4.0.21(Visual Studio的社区)的Android SDK:/用户/ jameslavery /库/开发商/ Xamarin / Android的SDK-MacOSX的支持的Android版本:2.3(API等级10)4.0.3(API等级15),4.1(API 16级)4.3(API级18)4.4(API级19)5.0(API级21)5.1(API级22)6.0(API级23)7.0(API级24)7.1(API级25)

SDK工具版本:25.2.5 SDK平台工具版本:25.0.5 SDK构建工具版本:25.0.3

Java SDK的:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home Java版本 “1.8.0_144的” Java(TM)SE运行时环境(建1.8.0_144-B01)的HotSpot的Java(TM)64位服务器VM(建立25.144-B01,混合模式)

可以在这里找到Android的设计师EPL代码: https://github.com/xamarin/AndroidDesigner.EPL

===苹果开发工具===

的Xcode 8.0(11246)建立8A218a

=== === Xamarin.iOS

版本:10.12.0.20(Visual Studio的社区)哈希:80b8487d分公司:d15-3生成日期:2017年8月18日16:07:26-0400

=== === Xamarin.Mac

版本:3.6.0.19(Visual Studio的社区)

=== === Xamarin督察

版本:1.2.2哈希:b71b035分公司:d15-1构建日期:周五,2017年4月21日17点57分12秒GMT

===建设信息===

发布ID:701001297 Git的版本:9c5299666538b2f8baf501418a5c064d784d64da建立日期:2017年8月7日11:29:35-04 Xamarin加载项:3bb0c32a14f1b7e368bf5ac53a84c3581c019391构建车道:MonoDevelop的狮子,d15-3

===操作系统===

的Mac OS X 10.11.6达尔文15.6.0达尔文内核版本15.6.0星期四06月23日18时25分34秒PDT 2016根:XNU-3248.60.10〜1 / RELEASE_X86_64 x86_64的

===启用用户安装的加载项===

LiveXAML 1.0 Redth的加载项1.0.9

Answer 1:

我已经报告了这个问题下面的错误:

https://bugzilla.xamarin.com/show_bug.cgi?id=59237

请随时给自己抄送给这个问题,当它被固定的通知。 从目前来看,你将不得不以某种方式重命名的.jar来解决此。

我希望这有帮助!



Answer 2:

这是因为与在其文件名括号中的嵌入式JAR文件中的绑定库 - 这导致了ProGuard的失败命令行。

@jondouglas提交Xamarin错误59237本。 希望修复将是使对ProGuard的命令行更具弹性,以奇怪的命名文件。

在此期间,我会获得一个更新绑定库保持有没有用括号(或打破一个命令行其它字符)在它的名称嵌入的jar文件。

由于@jondouglas为他诊断问题的帮助。



文章来源: CREATEMULTIDEXMAINDEXCLASSLIST error when building xamarin.android using Multidex