一个android studio项目中, 1. 在libs文件夹中引用第三方aar库. 2.代码目录jniLibs文件夹下也有很多第三方so库.
来的时候还好好的, 在客户更新了一个aar库之后, 再运行报错:
[getLibFullPath]-[0327]:getLibFullPath:/data/app/pri.tool.anv4l2camera-c-AkCYy24rooSlwhcXajYw==/lib/arm64/libea20c95bd_v1000_aee.so
Warning: "/data/app/pri.tool.anv4l2camera-c-AkCYy24rooSlwhcXajYw==/lib/arm64/libmaxengine.so" unused DT entry: DT_RPATH (type 0xf arg 0x11c4) (ignoring)
[ openLibrary]-[0039]:loadEngine error, message:dlopen failed: cannot locate symbol "__sfp_handle_exceptions" referenced by "/data/app/pri.tool.anv4l2camera-c-AkCYy24rooSlwhcXajYw==/lib/arm64/libea20c95bd_v1000_aee.so"...
[ loadEngine]-[0068]:loadEngine error
[ loadEngine]-[0186]:cannot find dependent library:/data/app/pri.tool.anv4l2camera-c-AkCYy24rooSlwhcXajYw==/lib/arm64/libea20c95bd_v1000_aee.so
看log是 unused DT entry: DT_RPATH, 网上搜了半天也没找到办法, 接下来报错某个变量找不到:
cannot locate symbol "__sfp_handle_exceptions" referenced by "arm64/libea20c95bd_v1000_aee.so"...
这个问题折腾了好久, 最后发现aar库中有一个和jnilibs中的so库同名的文件
最后把jnilibs中的so库同名的文件删除, 现象消失, 还好jnilibs中的so库是历史遗留, 现在不用了, 否则还不知道要折腾多久