Android Studio NDK 开发 问题记录

编译:找不到gles3库

使用旧的编译方式,写Android.mk 进行编译。报错如下

gles3/gl3.h no such file or directory

解决方案:

出此问题的原因是找不到这个库,所以需要声明这个庫所在的位置
需要在Application.mk里面声明

APP_STL := gnustl_static
APP_PLATFORM := android-21

android sdk 版本可以变 21-24都可以

Append:

时隔半年,搞了个新项目又遇到了这个问题。还是一样的报错

gles3/gl3.h file not found

问题是新项目没有用 Android.mk 做 ndk-build,而是用的 CMakeLists 的方式,原来的解决方案用不上了,但是根源问题还是在于适配的版本太低了。只要在 gradle 文件中将 minSdkVersion 调高即可,我调整到了 19。问题解决。

使用thread带来的报错

代码里用到了<thread>库,编译时出现问题

如下

undefined reference to __atomic_fetch_add_4'

解决:

在gradle里面加上'atomic':

ldLibs.addAll(['log', 'jnigraphics', 'GLESv3', 'EGL', 'atomic'])

link报错

Linker failed while linking   gl3jni.so
input/output error

这个问题困扰了很久,最后发现是开发环境的问题。

我在ubuntu虚拟机下开发,工程位于windows和虚拟机的共享文件夹中,导致出现inout/output error

在普通目录编译运行不报错。

2017-05-10 编辑

原文地址:https://www.cnblogs.com/psklf/p/5624367.html