C# 从Xamarin Android的c源代码创建共享库
我正在尝试使用Xamarin表单构建一个简单的sip应用程序。我将其用作sip功能的工具。我有一个源文件(.c),其中包含一些我想从Xamarin应用程序调用的方法。C# 从Xamarin Android的c源代码创建共享库,c#,android,c,visual-studio,xamarin,C#,Android,C,Visual Studio,Xamarin,我正在尝试使用Xamarin表单构建一个简单的sip应用程序。我将其用作sip功能的工具。我有一个源文件(.c),其中包含一些我想从Xamarin应用程序调用的方法。 我已经为Xamarin ios构建了一个静态库(.a),并使用p/invoke从我的c文件中调用方法创建了一个包装器。它工作得很好。但现在我一直在构建共享库(.so),以便在Xamarin android中使用它们。 我正在寻找为Xamarin android构建共享库的分步指南,从c源代码开始,到将libs链接到真正的Xamar
我已经为Xamarin ios构建了一个静态库(.a),并使用p/invoke从我的c文件中调用方法创建了一个包装器。它工作得很好。但现在我一直在构建共享库(.so),以便在Xamarin android中使用它们。
我正在寻找为Xamarin android构建共享库的分步指南,从c源代码开始,到将libs链接到真正的Xamarin android应用程序结束。但我还是非常感谢您的帮助。这就是您要找的: 概述
- 安装Visual Studio 2015
- 创建一个新的Visual C++动态共享库项目
- 在Xamarin项目中引用此项目
- 使用
访问C代码。例如:DllImport
[DllImport ("sanangeles", EntryPoint = "Java_com_example_SanAngeles_DemoGLSurfaceView_nativePause")] static extern void nativePause (IntPtr jnienv);
- 浏览以获得更深入的视图
当您这样做时,您甚至可以在Visual Studio 2015中运行Xamarin.Android应用程序时调试C代码。如果我可以这样做,那就太好了。但有些事情我不明白。首先,当我将我的Xamarin Android项目的引用添加到一个新的动态共享库项目时,我得到一个警告:
项目“DynamicSipProject”无法被引用。程序集必须具有“dll”或“exe”扩展名才能被引用
。第二个是在编译pjsip源代码之后,我有很多静态lib(.a)。如何在这个动态共享库项目中使用它们?