所以我在运行使用原生opengl库的应用程序时遇到了奇怪的麻烦。它以前工作过,但现在应用程序在启动时崩溃了。真的难以理解导致这种情况的原因。
由于内存不足错误导致无法加载libnativeegl.so
,导致出现UnsatisfiedLink错误。它说它无法加载库,因为它试图为它分配800MB内存,这似乎很多。所以
我对此并不了解,但是它不应该链接到机器上已有的库吗?我不知道它为什么要分配这个记忆。那里毫无根据的猜测。
因此链接到库时出现了问题?
在gradle构建文件中,我有:
ndk {
moduleName "nativeegl"
ldLibs "log", "android", "EGL", "GLESv1_CM"
}
在MainActivity中,我加载这些东西:
static {
System.loadLibrary("nativeegl");
}
直接从这里获取: https://github.com/tsaarni/android-native-egl-example
正如我所说,之前有效。昨晚我在我的开发机器上安装了Java更新(版本8更新71)。也许这是Android Studio失败的这次更新......?
编辑:nativeegl-example仍在运行(在调整一些项目设置之后) - 我的项目可能有问题......
答案 0 :(得分:0)
事实证明,我不小心将我的应用程序的C ++部分中的静态内存分配增加到了荒谬的数量,并且没有怀疑是这种情况。这是一个非常愚蠢的错误。
因此,内存不足错误是正确的,这不是我怀疑的一些奇怪的JNI错误。如果有人遇到这样的问题,请务必检查您的内存使用情况。