Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从Xamarin Android的c源代码创建共享库_C#_Android_C_Visual Studio_Xamarin - Fatal编程技术网

C# 从Xamarin Android的c源代码创建共享库

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表单构建一个简单的sip应用程序。我将其用作sip功能的工具。我有一个源文件(.c),其中包含一些我想从Xamarin应用程序调用的方法。
我已经为Xamarin ios构建了一个静态库(.a),并使用p/invoke从我的c文件中调用方法创建了一个包装器。它工作得很好。但现在我一直在构建共享库(.so),以便在Xamarin android中使用它们。

我正在寻找为Xamarin android构建共享库的分步指南,从c源代码开始,到将libs链接到真正的Xamarin android应用程序结束。但我还是非常感谢您的帮助。

这就是您要找的:

概述

  • 安装Visual Studio 2015
  • 创建一个新的Visual C++动态共享库项目
  • 在Xamarin项目中引用此项目
  • 使用
    DllImport
    访问C代码。例如:

    [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)。如何在这个动态共享库项目中使用它们?