如何为Xamarin创建c# DLL.Android从c++

本文关键字:DLL Android c++ 创建 Xamarin | 更新日期: 2023-09-27 18:18:07

我有一个使用Xamarin用c#编写的iPad应用程序。IOS,它使用了一些c++代码,这些代码已经按照这里的说明被构建到c# DLL中。

我现在想添加我的应用程序的Android版本,所以我需要建立一个版本的这个DLL,将是兼容的。

为Xamarin。IOS版本,这个过程基本上是:

  1. c++代码被XCode编译成一个库。一个文件
  2. SWIG用于从c++头文件生成一些c#接口文件。XCode构建一个libWrapper。从SWIG生成的文件之一生成的文件
  3. SMCS(似乎是Xamarin工具命令行工具)组合了lib。libWrapper。a和一个AssemblyInfo.cs文件放入c# dll中,它可以作为iPad项目的引用添加。

使用Xamarin中已经生成的DLL。Android项目不工作(它给出了一个P/Invoke EntryPointNotFound错误),大概是因为它是为iOS设备(i386, arm7和arm7s)构建的,它需要为Android构建不同?

我认为我需要使用Android NDK来编译c++(而不是XCode),但是这会产生什么以及我如何将其转换为c# DLL以便将其添加到我的Xamarin中。Android项目吗?

如何为Xamarin创建c# DLL.Android从c++

Android NDK将生成一个。so文件。您可以使用与iOS包装器中相同的PInvoke方法。我以前在Android上使用过SWIG,所以应该没有任何区别,因为它是C接口。

将。so文件添加到库项目中,并将其设置为作为embeddednativellibrary构建。

http://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/