【发布时间】:2019-06-14 11:51:49
【问题描述】:
窗口a 10 Visual Studio 2017 v15.9.7
大家好, 我有一个针对 Pie 和 Ice Cream Sndwich 的最小版本的 Xamarin.Forms 解决方案。 我在构建 Android 项目时遇到问题。
在收到错误 Java 退出代码 2 后,我沿着启用 Multi-Dex 选项的路线走了下去,并遵循了这篇文章...... https://riptutorial.com/xamarin-android/example/29859/enabling-multidex-in-your-xamarin-android-apk
现在我发现有些人在他们的 SDK 位置路径中有空格或特殊字符时会遇到此问题,但我的问题略有不同。
我的用户名中有一个撇号,因此我的用户文件夹中有一个撇号。 我的错误指向这个文件夹。 我花了几个小时试图对其进行排序,我目前的策略是启动一个新项目并一次添加一个 NuGet 包,一个接一个地构建,以查看新项目中何时发生错误。
似乎一旦我添加到 SkiaSharp.Views.Forms 中,错误就会开始发生。如果我删除它,问题就会消失。我敢肯定,根据我的主要项目,其他软件包也可以这样说,但这是我在错误发生之前进行测试的程度。
重命名我的用户文件夹不是一种选择。 我的用户文件夹是 c:\User\Anthony.D'Cruze。 这是我得到的错误....
1>"D:\ANTHONY\ANDROID\PushMessaging\FCMClient\FCMClient.csproj" (Build;BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;DebugSymbolsProjectOutputGroup;DebugSymbolsProjectOutputGroupDependencies;DocumentationProjectOutputGroup;DocumentationProjectOutputGroupDependencies;SatelliteDllsProjectOutputGroup;SatelliteDllsProjectOutputGroupDependencies;SGenFilesOutputGroup;SGenFilesOutputGroupDependencies target) (1) ->
1>(_CompileToDalvikWithDx target) ->
1> CREATEMULTIDEXMAINDEXCLASSLIST : error : Expecting class path separator ';' before 'Cruze\AppData\Local\Xamarin\Xamarin.Android.Support.v4\23.3.0.0\embedded\classes.jar'' in argument number 2
1>
我的结论是,这一定是我名字中的撇号有问题。 与其因为姓氏而诅咒我的父母,我宁愿找到一份工作。 我正在考虑为我的用户文件夹使用符号链接,但这有可能把我的电脑弄得我什至无法登录,所以如果我在其他地方找不到解决方案,这将是最后的手段。
其他人都经历过这种情况。
【问题讨论】:
-
您是否尝试过使用不同的 Mac/PC 或作为不同的用户来构建代码?什么时候开始发生错误,在错误开始发生之前您所做的确切更改是什么,或者它从未在您的计算机上构建
-
与大多数工具一样,特殊字符不能很好地发挥作用,尤其是在需要在命令行上调用工具时。我建议您创建一个没有特殊字符/空格/等的用户。其次,您有一个 v23 版本的支持库,它真的很旧,应该更新。 v28 是用于比较的当前稳定版。
-
一个cooleague已经能够建造了。
标签: c# android xamarin invalid-characters