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

使用.NET 7构建Android项目失败:无法编译原生汇编文件

问题:.NET 7 Android项目构建随机出现XA3006错误

现象说明

在Visual Studio for Mac 2022中通过模板创建Android项目(已勾选支持ABI:armeabi-v7a),使用.NET 7(目标框架net7.0-android33.0.0)构建时,会随机出现一个或多个XA3006编译错误,但切换到.NET 6(net6.0-android)时项目可正常运行。

错误日志

Xamarin.Android.Common.targets(3,3): Error XA3006: Could not compile native assembly file: environment.arm64-v8a.ll

stderr | /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: error: /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: environment.arm64-v8a.ll:554:7: error: expected value token
stderr |                 i32 −1, ; apk_fd

(XA3006) (AndroidApp1)

Xamarin.Android.Common.targets(1979, 3): [XA3006] Could not compile native assembly file: environment.x86.ll
stderr | /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: error: /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: environment.x86.ll:593:7: error: expected value token
stderr |                 i32 −1, ; apk_fd


Xamarin.Android.Common.targets(1979, 3): [XA3006] Could not compile native assembly file: environment.armeabi-v7a.ll
stderr | /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: error: /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: environment.armeabi-v7a.ll:593:7: error: expected value token
stderr |                 i32 −1, ; apk_fd


Xamarin.Android.Common.targets(1979, 3): [XA3006] Could not compile native assembly file: environment.x86_64.ll
stderr | /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: error: /usr/local/share/dotnet/packs/Microsoft.Android.Sdk.Darwin/33.0.26/tools/Darwin/binutils/bin/llc: environment.x86_64.ll:593:7: error: expected value token
stderr |                 i32 −1, ; apk_fd

项目csproj配置

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>net7.0-android33.0.0</TargetFramework>
    <SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
    <OutputType>Exe</OutputType>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <ApplicationId>com.companyname.AndroidApp1</ApplicationId>
    <ApplicationVersion>1</ApplicationVersion>
    <ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
    <TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  <AndroidEnableMultiDex>false</AndroidEnableMultiDex>
  <AndroidPackageFormat>apk</AndroidPackageFormat>
</PropertyGroup>

系统环境

.NET SDK:
Version:   7.0.202
Commit:    6c74320bc3

Runtime Environment:
OS Name:     Mac OS X
OS Version:  13.2
OS Platform: Darwin
RID:         osx.13-arm64
Base Path:   /usr/local/share/dotnet/sdk/7.0.202/

Host:
 Version:      7.0.4
 Architecture: arm64
 Commit:       0a396acafe

.NET SDKs installed:
 6.0.407 [/usr/local/share/dotnet/sdk]
 7.0.202 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
 Microsoft.AspNetCore.App 6.0.15 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
 Microsoft.AspNetCore.App 7.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
 Microsoft.NETCore.App 6.0.15 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
 Microsoft.NETCore.App 7.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
 x64   [/usr/local/share/dotnet/x64]
   registered at [/etc/dotnet/install_location_x64]

Environment variables:
Not set

global.json file:
Not found

问题原因及解决方法

原因

这是Xamarin.Android的编码Bug导致:在非英文系统语言环境下,生成的LLVM IR文件(如environment.*.ll)中,半角减号-被错误替换为全角减号−,而llc编译器无法识别全角符号,因此抛出"expected value token"错误。

解决方法

  • 临时修复:找到报错的.ll文件(路径在错误日志中已给出),打开后将所有全角减号−替换为半角减号-,保存后重新构建项目。
  • 永久修复:
    1. 更新Xamarin.Android到已修复该Bug的版本;
    2. 调整系统语言环境为英文,避免编码转换时出现符号替换问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:13:08