Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr"

原因

在SerialPort.c的代码中有使用到tcgetattr方法

image

tcgetattr方法存在于termios.h头文件中

在api 19 之后的termios.h 里面的函数有调整,api版本设置不对会导致在不兼容的android版本下出现这个错误。

我编译.so库时把minSdkVersion设置成21了,在android4.4的工控机上出现了这个错误。

解决办法

只需要将module下的build.gradle文件里的minSdkVersion设置成19或以下,再进行编译,就OK了。


Tips:NDK版本在17以后就不支持armeabi了,所以想要支持到更多的ABI,使用16的NDK版本就好了,

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容