AvaloniaUI的学习

ops/2024/10/18 6:05:36/

相关网站

github:https://github.com/AvaloniaUI/Avalonia
官方中文文档:https://docs.avaloniaui.net/zh-Hans/docs/welcome

IDE选择

  • VS2022
  • VSCode
  • Rider

以上三种我都尝试过,体验Rider最好。VS2022的提示功能不好,VSCode太慢,只有Rider的觉得体验跟VS2022开发WPF差不多
总上所述,我选择Rider

Rider配置

Avalonia_11">安装Avalonia模板

安装Avalonia模板:

dotnet new install Avalonia.Templates

在这里插入图片描述

查看已经安装的模板:

dotnet new list

这样新建项目的时候,才能选择Avalonia模板:
在这里插入图片描述

AvaloniaRider_28">安装AvaloniaRider插件

下载好Rider后,需要安装插件AvaloniaRider插件:
在这里插入图片描述

创建项目

创建项目时可以选择这几种模板:
在这里插入图片描述
其中Avalonia Cross Platform ApplicationAvalonia 11中增加的对移动端(Android和IOS)的支持模板。我们就选择这个。创建完毕后,项目结构大致是这样的:
在这里插入图片描述
可以看到有Andriod/Browser/Desktop/IOS的支持。
其中Desktop可以在Windows和Linux上运行。

运行项目

创建好项目之后,等待Nuget自动还原
我改了一下MainView.axaml:

<Grid Background="Blue"><Image Source="avares://Avalonia_Test/Assets/avalonia-logo.ico"></Image><TextBlock Text="{Binding Greeting}" HorizontalAlignment="Center" VerticalAlignment="Center"/></Grid>

运行Desktop项目

启动的地方选择带有Desktop的,点击启动
在这里插入图片描述
如果没有什么其他的问题的话,应该很快就能启动了:
在这里插入图片描述

运行Andriod项目

运行Android项目之前,需要安装Andriod SDK以及安卓模拟器

安装Android SDK
  • 打开菜单:文件->设置
  • 进入到设置界面,选择语言和框架->Android SDK
  • 点击Edit按钮,进入选择SDK界面,然后勾选要安装的SDK

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装Andriod 模拟器

此功能需要借助Visual Studio 2022
使用VS2022打开我们刚刚新建的工程:
打开菜单:工具->Android->Android 设备管理器
点击新建按钮,即可增加一个安卓模拟器,我这里是已经增加过了,可以增加多个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

增加后,把它启动起来,然后Rider那里就能看到了。如果没有启动的话,Rider可能启动失败。

在这里插入图片描述

常见问题

1.找不到 Android SDK 目录。

报错详细信息:Xamarin.Android.Tooling.targets(70,5): Error XA5300 : 找不到 Android SDK 目录。按照以下说明安装 Android SDK: https://aka.ms/dotnet-android-install-sdk
若要对命令行生成使用自定义 SDK 路径,请将 “AndroidSdkDirectory” MSBuild 属性设置为自定义路径。
0>------- Finished building project: Avalonia_Test.Android. Succeeded: False. Errors: 1. Warnings: 1

原因说明:安装Android SDK时,没有使用默认目录,而是自定义目录,例如我安装的就是F:\Install\Android_SDK目录。
解决办法
增加环境变量,把AndroidSdkDirectory设置为Android SDK的安装目录,我这里是F:\Install\Android_SDK所以就设置为这个值:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:修改后要重启Rider

2.找不到 API 级别 34 的 android jar

报错详细信息:Xamarin.Android.Tooling.targets(100,5): Error XA5207 : 找不到 API 级别 34 的 android jar。这意味着未安装 API 级别 34 的 Android SDK 平台。请在 Android SDK 管理器 “工具”>“ Android”>“Android SDK 管理器”… 中安装它,或更改 Xamarin.Android 项目,使其将安装的 API 版本作为目标。(缺少 F:\Install\Android_SDK\platforms\android-34\android.jar。)
0>------- Finished building project: Avalonia_Test.Android. Succeeded: False. Errors: 1. Warnings: 1

解决方法:需要在RiderAndroid SDK Mananger安装Android SDK 34,之前安装的是35版本,估计是版本太高导致的:
在这里插入图片描述
修改之后同样需要重启Rider。然后就可以运行啦:
在这里插入图片描述


http://www.ppmy.cn/ops/87093.html

相关文章

Qt系统机制

Qt系统 Qt文件概述输入输出设备类QFileQFileInfoQt多线程Qt多线程常用API使用Qt多线程 线程安全互斥锁读写锁条件变量信号量 Qt网络QUdpSocketQNetworkDatagram设计一个UDP回显服务器QTcpServerQTcpSocketTcp版本的回显服务器HttpClient核心API Qt 音频Qt视频 Qt文件概述 ⽂件操…

虚拟dom和diff算法

React的虚拟DOM&#xff08;Virtual DOM&#xff09;和Diff算法是React框架中非常重要的两个概念&#xff0c;它们共同协作以实现高效的UI更新。以下是对React虚拟DOM和Diff算法的详细解析&#xff1a; React虚拟DOM 定义&#xff1a; 虚拟DOM是React中的一个核心概念&#…

Flask for Python 全版本离线安装包 (1.0 + 2.0 + 3.0及依赖包)

Flask 是一个轻量级的 WSGI Web 应用框架。它旨在使入门快速且简单&#xff0c;同时具有扩展到复杂应用的能力。Flask 最初是一个围绕 Werkzeug 和 Jinja 的简单封装&#xff0c;现在已成为最流行的 Python Web 应用框架之一。 以下为离线安装包&#xff0c;包含目前各主版本及…

通信原理-思科实验三:无线局域网实验

实验三 无线局域网实验 一&#xff1a;无线局域网基础服务集 实验步骤&#xff1a; 进入物理工作区&#xff0c;导航选择 城市家园; 选择设备 AP0&#xff0c;并分别选择Laptop0、Laptop1放在APO范围外区域 修改笔记本的网卡&#xff0c;从以太网卡切换到无线网卡WPC300N 切…

JavaScript实战 - 使用JavaScript绘制抛物线的技术实现

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; 前言 抛物线是数学中…

为什么package.json的devDependencies中有的包名前带@?

这就是包的名称而已&#xff0c;vue 下面的包我们一看就知道是vue官方维护的&#xff0c;如果都叫vue-开头就分不清是官方的包&#xff0c;还是个人的包了&#xff0c;发布npm 包的前缀 必须跟注册的npm名称相同&#xff0c;个人无法取vue 开头的包名称的。 vue是代表vue这个组…

Spring Cloud全解析:服务注册中心的多维度产品对比与优选指南

注册中心不同产品的对比 产品使用语言CAP数据一致性多数据中心Watch支持KV存储服务健康检查对外暴露接口Spring Cloud集成EurekajavaAP––Long Polling–可配置支持HTTP已集成zookeeperjavaCPZAB(Paxos)–支持支持心跳客户端已集成consulgoCPRaft支持(Gossip)Long Polling支持…

异步爬虫基础

我们知道爬虫是 IO 密集型任务&#xff0c; 例如使用 requests 库来爬取某个站点&#xff0c;当发出一个请求后&#xff0c; 程序必须等待网站返回响应&#xff0c; 才能接着运行&#xff0c; 而在等待过程中&#xff0c;整个爬虫程序是一直在等待的。 协程的基本原理 案例的…