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

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

Android使用cmake编译串口通信.so文件报错cannot|Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr"
文章图片
image
tcgetattr方法存在于 termios.h头文件中
在api 19 之后的termios.h 里面的函数有调整,api版本设置不对会导致在不兼容的android版本下出现这个错误。
我编译.so库时把minSdkVersion设置成21了,在android4.4的工控机上出现了这个错误。
解决办法 只需要将module下的build.gradle文件里的minSdkVersion设置成19或以下,再进行编译,就OK了。



【Android使用cmake编译串口通信.so文件报错cannot|Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr"】Tips:NDK版本在17以后就不支持armeabi了,所以想要支持到更多的ABI,使用16的NDK版本就好了,
Android使用cmake编译串口通信.so文件报错cannot|Android使用cmake编译串口通信.so文件报错cannot locate symbol "tcgetattr"
文章图片
image

    推荐阅读