You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android启用Multi-Dex失败,构建报错求助

解决Xamarin Android启用Multi-Dex后的CreateMultiDexMainDexClassList错误

从你提供的错误日志来看,核心问题是命令行参数解析失败——脚本把路径中意外的内容([2598:39D0][2016-11-22T22:11:15]i001:)当成了未知选项,这大概率是因为你的路径中包含空格(比如C:\Users\Muhammad Tayyab),导致mainDexClasses.bat无法正确解析带空格的文件路径。下面是几个针对性的解决方案:

解决方案1:迁移Android SDK到无空格路径

当前你的Build Tools路径是C:\Users\Muhammad Tayyab\AppData\Local\Android\android-sdk\build-tools\23.0.3\,路径里的空格是导致参数解析混乱的主要原因。你可以:

  • 把Android SDK整个移动到没有空格的目录下,比如C:\Android\android-sdk
  • 在Visual Studio中更新Android SDK路径:工具 > 选项 > Xamarin > Android设置,将SDK位置改为新的路径
  • 删除项目的obj和bin目录,清理后重新构建

解决方案2:手动指定Main Dex列表文件

跳过自动生成multidex.keep的步骤,手动创建并配置:

  1. 在项目根目录创建一个multidex.keep文件,添加必须放在主Dex中的类(比如你的Application类、MultiDex相关类,以及第三方库的核心类),格式示例:
    com/yourcompany/yourapp/MainApplication.class
    android/support/multidex/MultiDex.class
    
  2. 右键项目 > 属性 > Android选项 > 高级,在"Custom Main Dex List Files"中添加你创建的multidex.keep文件路径
  3. 重新构建项目

解决方案3:升级Android Build Tools版本

你当前使用的Build Tools 23.0.3版本比较老旧,存在一些Multi-Dex相关的已知问题。建议升级到更高版本(比如28.0.3,选择与你的Xamarin.Android版本兼容的版本):

  • 在Android SDK管理器中卸载23.0.3,安装更高版本的Build Tools
  • 在项目属性中指定使用新的Build Tools版本

解决方案4:排查环境变量干扰

日志中显示传递了JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8,虽然这个变量本身没问题,但偶尔会和Xamarin的构建脚本产生冲突。你可以暂时移除这个环境变量,重启Visual Studio后尝试构建,看是否解决问题。

附加步骤:清理并重建项目

无论尝试哪个方案,都建议先执行以下操作:

  • 删除项目的obj和bin目录
  • 重启Visual Studio
  • 执行"清理解决方案"再"重建解决方案"

错误日志参考

MultiDexMainDexListFile: obj\Debug\multidex.keep 1> CustomMainDexListFiles: 1> ToolExe: mainDexClasses.bat 1> ToolPath: C:\Users\Muhammad Tayyab\AppData\Local\Android\android-sdk\build-tools\23.0.3\\ 1> ProguardHome: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\proguard\ 1> Environment Variables passed to tool: 1> PROGUARD_HOME=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\proguard\ 1> JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 1> C:\Users\Muhammad Tayyab\AppData\Local\Android\android-sdk\build-tools\23.0.3\\mainDexClasses.bat --output obj\Debug\multidex.keep "'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v7.0\mono.android.jar';'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Xamarin\Android\android-support-multidex.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.Common\library_project_imports\bin\Common.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.Data\library_project_imports\bin\Data.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.Gauges\library_project_imports\bin\Gauges.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.Input\library_project_imports\bin\Input.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.List\library_project_imports\bin\List.jar';'obj\Debug\__library_projects__\Telerik.Xamarin.Android.Primitives\library_project_imports\bin\Primitives.jar';'obj\Debug\__library_projects__\TwilioClient.Android\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\TwilioClient.Android\library_project_imports\libs\org.apache.http.legacy.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Animated.Vector.Drawable\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Compat\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Core.UI\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Core.Utils\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Design\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Fragment\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Media.Compat\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Transition\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.v4\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.v7.AppCompat\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.v7.RecyclerView\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Android.Support.Vector.Drawable\library_project_imports\bin\classes.jar';'obj\Debug\__library_projects__\Xamarin.Firebase.Common\library_project_imports\classes.jar';'obj\Debug\__library_projects__\Xamarin.Firebase.Iid\library_project_imports\classes.jar';'obj\Debug\__library_projects__\Xamarin.Firebase.Messaging\library_project_imports\classes.jar';'obj\Debug\__library_projects__\Xamarin.GooglePlayServices.Base\library_project_imports\classes.jar';'obj\Debug\__library_projects__\Xamarin.GooglePlayServices.Basement\library_project_imports\classes.jar';'obj\Debug\__library_projects__\Xamarin.GooglePlayServices.Tasks\library_project_imports\classes.jar';'C:\Users\Muhammad Tayyab\AppData\Local\Xamarin\Xamarin.Android.Support.CustomTabs\23.3.0.0\embedded\classes.jar';'obj\Debug\android\bin\classes'" 1>CREATEMULTIDEXMAINDEXCLASSLIST : error : Unknown option '[2598:39D0][2016-11-22T22:11:15]i001:' in line 1 of file 'C:\Users\Muhammad', 1> included from argument number 13 1> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 1> Invalid option 1> Usage: 1> 1> Short version: Don't use this. 1> 1> Slightly longer version: This tool is used by mainDexClasses script to build 1> the main dex list. 1> Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 1> The command exited with code -1. 1>Done executing task "CreateMultiDexMainDexClassList" -- FAILED. 1>Done building target "_CompileToDalvikWithDx" in project "VoipApp.csproj" -- FAILED. 1> 1>Build FAILED.

内容的提问来源于stack exchange,提问作者u_1826

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:20:52