【安卓】 -002 JNI库在低版本安卓上运行报“cannot locate symbol “__register_atfork” referenced by "libxxx.so"错误
最近在弄C++代码转安卓库的时候,发现原来用NDK编译好的库在实际设备上运行时,加载过程中会导致程序崩溃问题。看log报的错误是“cannot locate symbol “__register_atfork” referenced by “libxxx.so”。
编译环境:win10 x64, Android Studio 3.3.2, NDK r18.
测试环境:荣耀10,安卓9.
目标设备:安卓5.1.1
现象:在测试环境中运行正常,在目标设备上加载so时崩溃,报“cannot locate symbol “__register_atfork” referenced by "libxxx.so"错误。
解决方法:网上搜索时发现有说NDK版本不一致导致的问题。https://blog.csdn.net/confusing_awakening/article/details/80321261 。而现场配置中正好NDK版本是r18, AS提示NDK版本可以升级。于是升级NDK到推荐的最新版本。重新编译所有的库,测试问题解决。