我正在使用Android NDK在https://github.com/thibautd/android-serialport-api/tree/master/android-serialport-api/project上构建应用程序。
到目前为止我做了什么:
- 使用gradle版本' com.android.tools.build构建项目:gradle-experimental:0.7.0-alpha1'
- 我在android-17上构建它并在4.2上安装在Android设备上。我也试过android-19
- 构建经历没有任何错误但在运行时我得到异常无法加载库:soinfo_relocate:找不到符号" tcgetattr"
醇>
我已经尝试了几个选项来实现这个功能但是所有选项都失败了
我试过的选项
- 设置APP-PLATFORM,如Cannot locate symbol 'tcgetattr' referenced by "libcrypto.so"
中所述
- 使用$(PREBUILT_SHARED_LIBRARY),将.so文件包含在How can i Link prebuilt shared Library to Android NDK project?
中提到的同一个github位置
- 尝试在上面的选项1)和2)中设置LOCAL_EXPORT_C_INCLUDES,如同帖[{3}}
中所述
- 还尝试了How can i Link prebuilt shared Library to Android NDK project?
中提到的选项
- 将所有必需的包含文件直接放在/ jni下的项目中,并尝试构建项目。
醇>
我的项目编译得非常好。测试时我总是删除build文件夹中的内容并重建项目。确保.so文件确实正确创建。
在所有情况下,我最终都出现了完全相同的错误soinfo_relocate:找不到符号" tcgetattr"
我认为这是因为有些像unistd.h这样的包含在运行时没有被正确引用,但是我无法弄清楚如何让它工作。