关于android studio下使用android-serialport-api。
首先,为什么注明2017年,我是今年才开始做android的,用的sdk和ndk都是最新版的。
然而,我在网上找的不管是代码还是帖子,用前辈们教我们的方法,使用android-serialport-api都是运行到open的时候闪退。
如果你也发现是这样,那么就阅读我这篇文章吧,如果你还没到这一步,先看jni技术上的问题和android-serialport-api的使用方法吧。
我另一个文章会介绍使用。
当你是个新手,也就是说你用比较新的sdk和ndk时,当你调用到打开串口时,会发现程序闪退;
闪退的原因是so库的问题,用android studio Debug,你会发现
cannot locate symbol "tcgetattr" referenced by "libserial_port.so"这个问题;
原因是tcgetattr这个函数在compileSdkVersion 19时,和某一个版本(compileSdkVersion 23)之后,函数已经改变了。
这个函数或者定义出现在termios.h中,19里是内联,23里是定义。
Api23时,int tcgetattr(int, struct termios*);
Api19时,static __inline__ int tcgetattr(int fd, struct termios *s){