一次xamarin绑定安卓库的记录
由于xx原因,我这里用到了一个叫AgentWeb的安卓库,在此记录一下绑定的过程。
由于他是安卓库,所以我们需要先去下载一下他的jar和aar。
github地址:https://github.com/Justson/AgentWeb
然后我们就得到了两个文件(不会下载的可以去问问百度)。

先随便建一个项目

然后添加一个安卓绑定库项目

然后把jar和aar文件添加到绑定库项目的Jars文件夹中(记得右键改一下生成操作)。
然后去随便写个xml文件。
写上一些基础代码
然后基础部分就结束了,开始踩大坑了。
先尝试生成一下项目,会发现一堆报错,我们来一个一个解决。

很明前,前五个都是同类报错,均为未实现xx接口。

我们随便点一个进去看看。


我们能发现这些接口都是实现了的,只是类型不一致。
因为这些类都是部分类(partial),所以我们可以去手动改一下他的返回类型。
类似下面这样,懂的都懂。
写好五个文件之后,报错就少一大半了。


还有最后一个报错,我们点进去看看。

感觉好麻烦的样子,我直接把他删了吧。
在方法的上边可以获取到他的信息,然后复制到metadata.xml文件中。

就像是下边这样。
生成终于不报错了,然而并没有结束,还有一个坑。


假如我们要js调用C#,根据官网上我们可以这样写。
在这个AndroidInterface类中的方法上需要添加JavascriptInterface特性。
然后我就添加上了,结果一运行就报一大堆错。

那么问题来了,我不是加上JavascriptInterface了吗,为什么他会找不到呢?
这里我们可以去看看源码。

然后我们也getMethods试试,顺便对比一下java和C#反射的区别。


很明显java的反射比c#的少很多内容,看样子需要我们手动暴露一下这个方法。
添加一下这个引用。

然后启动也就不报错了。

到此结束了。