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

Avalonia跨平台基础Android应用构建失败求助

Avalonia + .NET Android 构建运行异常排查方案

问题概述

使用.NET 7.0.400在VS Code中基于Avalonia开发Android应用,Hello World项目存在以下异常:

  • 按官方文档创建跨平台项目成功,但Android端无法正常构建/运行
  • 已安装带.NET、MAUI组件的Visual Studio 2022,执行dotnet workload install android和dotnet tool install -g Redth.Net.Maui.Check成功,但maui-check执行报错,重试无效
  • dotnet build可完成但有警告,dotnet run提示文件被占用;Desktop端运行正常
  • 修复ViewLocator签名、安装Xamarin.AndroidX.Annotation后APK可安装到Android 11真机,但启动崩溃
  • 尝试dotnet clean、切换.NET版本(7.0.306/7.0.400/8.0预览版)无效;杀死.NET进程后出现XA0010(无可用设备)错误

针对性解决步骤

1. 解决dotnet run文件占用问题

  • 关闭VS Code及所有关联的.NET进程(包括dotnet.exe、msbuild.exe),通过任务管理器直接结束
  • 执行dotnet clean后手动删除项目目录下的bin、obj文件夹,再重新执行dotnet build
  • 检查是否有杀毒软件拦截项目文件,临时关闭实时防护后重试

2. 修复XA0010无可用设备错误

  • 真机连接:确保Android设备开启USB调试,并在设备上授权当前电脑的调试权限;执行adb devices确认设备已被识别,未识别则重新安装对应设备的USB驱动
  • 模拟器:确保Android模拟器已启动,且SDK版本与项目目标Android版本匹配;执行adb kill-server再adb start-server重启ADB服务
  • 在VS Code中安装Android Extension Pack插件,自动关联ADB设备,避免设备检测异常

3. 解决APK启动崩溃问题

  • 检查AndroidManifest.xml配置:确认android:name指向正确的Avalonia入口类(默认应为.MainApplication)
  • 捕获崩溃日志定位问题:执行adb logcat *:E查看错误详情,常见原因包括Avalonia Android依赖缺失、权限未声明
  • 统一Avalonia NuGet包版本:确保项目中Avalonia、Avalonia.Android等相关包版本一致且适配当前.NET版本;可删除packages.lock.json后重新还原包
  • Android 11适配:在AndroidManifest.xml的application标签中添加android:requestLegacyExternalStorage="true"属性,避免存储权限导致的启动崩溃

4. 修复Workload及maui-check异常

  • 卸载重装Android Workload:执行dotnet workload uninstall android,删除%USERPROFILE%\.dotnet\workloads目录清理缓存后,再执行dotnet workload install android --source https://api.nuget.org/v3/index.json
  • 验证JDK版本:确保安装的是OpenJDK 11(Avalonia Android要求版本),检查环境变量JAVA_HOME是否指向正确路径
  • 跳过maui-check直接验证:执行dotnet build -t:Run -f net7.0-android,查看详细错误日志定位具体问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 01:53:14