一、前言,今天周末,由于最近又需要调试Android 串口,所以,打算整理一份通用的.so 库,只有通道部分的代码,上次编译库的时候还是半年前,本以为会非常简单,只有几分钟就搞定的,哪个知道,使用最新的Android Studio 3.1.2 和使用NDK 17 编译完全是个坑,正正花费一天的时间,因此,写下这篇文章,防止自己下次遇到问题有忘记了。
二、由于之前写过一篇关于Android Studio 3.0 使用NDK 编写库的,那个时候非常顺利,完全没有想到半年后的今天,当Android Studio 更新到最新版会这么麻烦,耗费了我一天的时间。o(╥﹏╥)o
三、编译环境: Android Studio 3.1.3 NDK 版本 17.xxxxx 系统:Windows 10 x64
四、如下:
error: no such file or directory: //一直都是报这个错误
'SDK/ndk-bundle/sysroot/usr/include/i686-linux-android'
ninja: build stopped: subcommand failed.
error: no such file or directory:
'SDK/ndk-bundle/sysroot/usr/include/i686-linux-android'
ninja: build stopped: subcommand failed. //一直报错
一开始,以为是哪里配置有问题,或则自己写的代码有问题。因此,就一直找自己的问题,后来发现自己的代码完全没有问题,但是,无论怎么编译都是报上面的错误,于是去网上搜索这个问题的解决办法,无论我怎么找,翻遍了百度都没有相同都人遇到过。直到今天下午,快要吃晚饭的时候。就去CSDN 逛了一下, 其中有个帖子好像和我遇到相关的问题,进去里面,发现问题果然一样,但是没有具体的解决办法,其中有一楼提到Android Studio SDK配置目录不能有空格,或则其他字符之类的。
试了一些,编译竟然通过了,我去,想骂一句,我去,怎么是这样子,这样应该是编译器的bug吧,有个空格就识别不出来。o(╥﹏╥)o
如下图:带空格的SDK 目录 ("Android SDK")
编译一直报错,下面是修改的SDK 目录名后:("Android SDK" ===》"AndroidSDK")
编译通过了,可以看到目录下,有相关.SO 文件
五、关于NDK 17 编译库失败问题,可以以下这篇文章:
o(╥﹏╥)o 搞了一天,吃晚饭去了, 这又浪费一天的时间了。