unity android 串口,Unity 安卓下使用串口提示:System.DllNotFoundException: MonoPosixHelper的解决办法...

照例,我不具体说我解决办法的辛酸经过。我所有的blog都不会告诉你是为什么。只简单粗暴的给出解决办法。

核心思路是:

在java层面实现串口消息收发,然后用UnityPlayer.UnitySendMessage("unity_com","java_messgae", sss); 转发给Unity

而Unity则调用

if (cls == null)

{

cls = new AndroidJavaClass("com.unity.FS.UnityPlayerActivity");

}

cls.CallStatic("unity_message", msg); 给java发数据,让java执行真正的发送函数。发往串口。

好了,办法说完了。不喜欢听我啰嗦的,可以自己去搜索怎么实现。

那么下面分解步骤:

1。去网上搜索lib_serialport。将下载回来的两个文件SerialPort.c SerialPort.h 两个.mk放到一个文件夹,例如jni文件夹。然后执行ndk-build.

看到这里,肯定很多人吐槽,去哪里下?下回来没有SerialPort.h只有.c。淡定我也是makefile出来的,但是稍后我会提供完整的用到的文件。当然,我的封装方法不一定适合你就是了。

比如UnityPlayer.UnitySendMessage("unity_com","java_messgae", sss); 网上大多是 Main Camera。 XXXX,而我认真负责的告诉你,只要场景中一直明确存在对应名字的对象就可以。

ndk-build是什么?请你自己去恶补基础知识。

然后将build出来的 obj libs jni 自己保存好。

2。打开unity,在场景里创建com消息接收对象比如这里是unity_com,给它挂载一个脚本,确保有java_messgae 这个接口就行。有人又要纠结函数怎么写,参数是什么。建议去别的地方搜。。比如宣雨松的blog。

void java_messgae(string str)

{

//str就是你收到的串口消息。我在java层将16进制转成字符串传过来的。

//当然,代码包里面有

}

3。导出unity工程为eclipse工程。这是个基本问题。但是我大发慈悲,上个图。

0818b9ca8b590ca3270a3433284dd417.png 4。然后将刚才ndk-build出来的 三个文件夹拷贝到该工程根目录下。该工程是哪个该工程?你猜我说的是哪个工程?

5。去网上搜一个java使用串口的.java文件回来。然后自己再封装一个跟应用有关的。

具体可以去这里看看http://lpcjrflsa.iteye.com/blog/2097280

http://www.linuxidc.com/Linux/2012-05/61283.htm 如果懒得看,就用我封装好的。但是使用习惯不一定适合你。

6。打开eclipse,用java编写好串口收发的,然后编译apk即可。至于中间的环境搭建等基本问题,我相信遇到串口问题的人都会了。不啰嗦。一篇文章不可能教会你所有东西。

代码在这里

http://download.csdn.net/detail/glunoy/9637750

你可能感兴趣的:(unity,android,串口)