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

如何在Linux ARM64环境下用dotnet CLI生成Android APK文件?

在Linux ARM64(树莓派OS)环境交叉编译.NET7 Android应用的问题与解决

问题场景

我在已安装.NET 7 SDK的Linux ARM64(树莓派OS ARM64)环境下,尝试交叉编译目标为net7-android的应用,执行命令:

dotnet publish -f:net7.0-android -c:Release

出现以下错误:

$ dotnet publish -f:net7.0-android -c:Release
MSBuild version 17.5.0+6f08c67f3 for .NET
/home/jmn/.dotnet/sdk-manifests/7.0.100/microsoft.net.sdk.android/WorkloadManifest.targets(3,5): error : Could not resolve SDK "Microsoft.Android.Sdk.net7". Exactly one of the probing messages below indicates why we could not resolve the SDK. Investigate and resolve that message to correctly specify the SDK.
/home/jmn/.dotnet/sdk-manifests/7.0.100/microsoft.net.sdk.android/WorkloadManifest.targets(3,5): error : SDK resolver "Microsoft.DotNet.MSBuildWorkloadSdkResolver" returned null.
/home/jmn/.dotnet/sdk-manifests/7.0.100/microsoft.net.sdk.android/WorkloadManifest.targets(3,5): error : The NuGetSdkResolver did not resolve this SDK because there was no version specified in the project or global.json.
/home/jmn/.dotnet/sdk-manifests/7.0.100/microsoft.net.sdk.android/WorkloadManifest.targets(3,5): error : MSB4276: The default SDK resolver failed to resolve SDK "Microsoft.Android.Sdk.net7" because directory "/home/jmn/.dotnet/sdk/7.0.202/Sdks/Microsoft.Android.Sdk.net7/Sdk" did not exist.
/home/jmn/.dotnet/sdk-manifests/7.0.100/microsoft.net.sdk.android/WorkloadManifest.targets(3,35): error MSB4236: The SDK 'Microsoft.Android.Sdk.net7' specified could not be found.
[/home/jmn/SeaweedFS-GUI/SeaweedFS.Gui/SeaweedFS.Gui.Android/SeaweedFS.Gui.Android.csproj]

解决步骤

1. 安装Android Workload

Linux ARM64环境下,.NET Android workload不会默认安装,需手动执行以下命令安装:

dotnet workload install android --source https://aka.ms/dotnet7-android-workloads-feed

若遇网络问题,可添加--verbose参数查看详细日志排查。

2. 验证Workload安装状态

执行命令确认Android workload是否成功安装:

dotnet workload list

输出中应包含microsoft.net.sdk.android条目。

3. 指定SDK版本(可选)

若仍提示版本未指定,可在项目目录下新建或修改global.json文件,添加版本配置:

{
  "sdk": {
    "version": "7.0.202",
    "rollForward": "latestMinor"
  },
  "msbuild-sdks": {
    "Microsoft.Android.Sdk": "33.0.46"
  }
}

版本号需与实际安装的workload版本匹配,可通过dotnet workload list查看对应版本。

4. 清理缓存后重新发布

清理项目缓存后重新执行发布命令:

dotnet clean
dotnet publish -f:net7.0-android -c:Release

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:08:09