首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复'dlopen失败:在Android5.x上加载EVP_camellia_128_cbc时无法找到符号“libssl.so‘

如何修复'dlopen失败:在Android5.x上加载EVP_camellia_128_cbc时无法找到符号“libssl.so‘
EN

Stack Overflow用户
提问于 2019-06-12 15:18:42
回答 1查看 1.1K关注 0票数 2

我尝试构建64位(arm64) OpenSSLV1.1b,并将其作为共享库(libcrypto.so和libssl.so)添加到我的应用程序中。我用--arch arm64和-api 21参数构建了独立的工具链,然后用它构建了openssl库并将它们添加到我的应用程序中。所有带有Android6.x和更高版本的64位设备都工作得很好,但我被困在了Android5.0.1 64位-联想TAB 2 A10-70L平板电脑上。

问题是,在这个特定的Android上,当我加载libssl.so时,我会得到错误:

代码语言:javascript
复制
E/art     ( 2755): dlopen("/data/app/com.myapp.mypackage-1/lib/arm64/libssl.so", RTLD_LAZY) failed: 
dlopen failed: cannot locate symbol "EVP_camellia_128_cbc" referenced by "/data/app/com.myapp.mypackage-1/lib/arm64/libssl.so"...

E/MY_APP( 2755): 2019-06-12 14:22:27,984: [MY_APP][18446744071776944368] ERROR (2117) - Error in loading libraries : 
dlopen failed: cannot locate symbol "EVP_camellia_128_cbc" referenced by "/data/app/com.myapp.mypackage-1/lib/arm64/libssl.so"...

因此,在启动屏幕期间或之后不执行->和应用程序崩溃之后,将抛出异常,加载其他库。

我在StackOverflow上发现,如果您根据较高的android版本编译本机库(作为openssl),那么所使用的平板电脑就是…。但是我用api 21来制作openssl,这是Android5.0,所以应该没有问题。看起来,openssl期望设备库中有这个符号,而这个设备没有这个符号。

我试过的是:

  1. 为了使用不同的NDK来构建openssl ->,我使用了15-19的NDK,在这个版本中我构建了一个应用程序,但是同样的错误也发生了(“无法定位符号”)。我尝试了12-14 NDK的接近NDK,我们在我们的应用程序中使用的其他本地lib(也就是12b),但有了这个NDK,我不能使openssl lib在任何时候,它将在构建期间失败。
  2. 使用不同的NDK构建整个应用程序->,我尝试了16和19,但在构建失败,我不认为,这将有帮助。
  3. 要在AndroidManifests、项目属性和build.gradle文件中使用21作为minsdkversion,可以将所有内容都包含在同一个api版本中,但没有成功。
  4. 我试着构建并实现了OpenSSL-1.1.1c的更高版本,但是Camellia也发生了同样的错误。
  5. 我试图将缺失的符号作为宏添加到evp.h,但没有成功(也许我应该以不同的方式添加它)。
  6. 我试图通过编辑makefile将camellia密码排除在openssl的构建之外,但是整个构建以错误结束。

为什么会发生这种情况,我如何才能在Android5.x64位上运行我的应用程序呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-30 16:14:14

自我解决方案:)经过我前面提到的尝试,我找到了唯一可行的解决方案--将openssl构建为静态库(所以是libssl.a和libcryp.a),并将这些文件添加到app中。

看起来,动态openssl库(*.so)并不适用于我的应用程序,它使用的是较老的NDK,但老实说,我仍然不知道为什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56565552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档