嘿,我的libtest.so库中有一个用c ++编写的名为timestwo的方法。 现在,我需要在主项目(Xamarin.Android)Project accelerometer2中调用此方法。
不幸的是,只有很少的示例和说明从头开始。它们大多数是Xamarin.Forms示例或java / objective c库。我已经将我的源文件test.cpp和头文件test.h包含在一个c ++项目中。但是如您所见,我仍然无法在主要活动中调用函数。
public class MainActivity : Activity, ISensorEventListener
{
static readonly object _syncLock = new Object();
static System.loadLibrary("libtest");
double anothervalue = 1.0;
double value = timestwo(anothervalue);
test.cpp:
#include "test.h"
double timestwo(double x){
return x*2;
}
test.h:
extern "C" double timestwo(double x);
[如何]我的主要活动需要参考吗?还是我想念什么?
更新:
此文件属于c#项目还是属于我的c ++项目?
internal static class Wrapper
{
[DllImport("libtest.so", EntryPoint = "timestwo")] //,(EntryPoint = "timestwo")
internal static extern double timestwo(double x);
}
我现在已经更改了包装器,但是我的MainActivity仍然给我这个错误: 错误IDE1007当前上下文中不存在名称“ System.loadLibrary”。