Visual Studio 2022 .Net下Xamarin 开发安卓应用使用Java库

举报
神龙居市 发表于 2021/11/21 14:37:54 2021/11/21
【摘要】 千呼万唤的Visual Studio 2022 终于发布正式版了,但我这里最关心的MAUI还是Preview版本,并没有跟正式版发布。因为手头上有个项目是.Net的Winform应用,为了节省成本希望移植到Android系统上,团队中暂时无Android开发,所以寄希望于.Net 6下的MAUI,希望让.Net开发无缝开发安卓应用。没有MAUI,Xamarin也可以先尝试一下。启动Visua...

千呼万唤的Visual Studio 2022 终于发布正式版了,

但我这里最关心的MAUI还是Preview版本,并没有跟正式版发布。

因为手头上有个项目是.Net的Winform应用,为了节省成本希望移植到Android系统上,团队中暂时无Android开发,所以寄希望于.Net 6下的MAUI,希望让.Net开发无缝开发安卓应用。

没有MAUI,Xamarin也可以先尝试一下。

启动Visual Studio 2022的新建项目首页上,可以找到相关移动项目的模板

移动项目创建后,会出现4个项目:1个C#的Xaml语言的UI公用库,3个分别是面向Android,iOS、Windows的应用启动入口。可以做到一套C#的UI逻辑编译到不同的平台上使用。

遇到的第一个困难就是,项目中有一个人脸识别SDK的库,在安卓版本中提供的是Java入口,并没有像Windows版本一样提供C++库和C#Demo。

微软提供了多种Java移植到C#上来使用的方法,本文例子是:利用绑定Java库的方式,从 Android .JAR 文件创建 Xamarin.Android Java

1.创建绑定库

在上面项目工程上,添加新工程,模板是Xamarin的Android绑定库

创建好的项目包含一个Jars多文件夹,右键点击jars文件夹->添加->现有项,通过浏览找到要添加的jar文件。

添加的库文件,也有可选的嵌入方式, 为了部署方便选择EmbeddedJar

EmbeddedJar - JAR将嵌入绑定库

InputJar - JAR将于绑定库分离

编译工程后就变成了 JavaArcFace.dll

2.使用绑定库

若要在 Xamarin.Android 应用中使用此 .DLL,请执行以下操作:

  • 添加对绑定库的引用。

    在目标项目上,右键->添加引用->选择文件 JavaArcFace.dll。此时在引用列表中看到和C#一样被使用的文件,双击打开对象浏览器,就看到了被重新引入的Java类和方法文件。不仅仅类和属性被引用,而且根据.Net规范进行了相应的映射。

    • Java 中的“Setter/Getter 方法”是 .NET 中的“属性”。

    • Java 中的“字段”是 .NET 中的“属性”。

    • Java 中的“侦听器/侦听器接口”是 .NET 中的“事件”。 回调接口中的方法的参数将由 EventArgs 子类表示。

    • Java 中的“静态嵌套类”是 .NET 中的“嵌套类”。

    • Java 中的“内部类”是 C# 中包含实例构造函数的“嵌套类”。

  • 通过托管的可调用包装器对 .JAR 进行调用。C#的调用就和使用普通.Net类库一样的方式了

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。