android - 在 Android Studio 上构建时在 .so 符号中添加了“ndk112”
问题描述
我正在使用Android.mk
文件构建一个 Android 应用程序。我将此应用程序称为 A1。
.so
我得到了一个具有实用程序功能的文件形式的第三方本机库。我将这个库称为 N1。N1 由第三方供应商基于 Android Studio 构建。
当我在 A1 中包含 N1 并尝试使用 构建 A1Android.mk
时,由于符号不匹配错误,编译失败。
当我检查符号不匹配时,区别如下:
一个。Android Studio 生成的示例符号:
_ZNSt6__ndk112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm
湾。Android.mk
使用 A1 中存在的 N1 的头文件
生成的相同符号:_ZNSt6__basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6__initEPKcm
不同之处在于,N1ndk112
在其每个符号中都添加了 ' '。.so
如果我们在 Notepad++ 中打开文件,就可以看到这一点。
我进行了很多搜索以检查是否有任何标志可用于解决此问题,但无法获得任何参考。有人可以帮我从使用 Android Studio 生成ndk112
的文件的符号中删除“” 。.so
解决方案
与https://stackoverflow.com/a/38798556/632035的原因相同。N1 和 A1 使用不同的 STL。它们必须使用相同的 STL。您需要使用 libc++ 重建 A1。
推荐阅读
- google-apps-script - 从列中选择随机表单元格值以返回并记录
- node.js - 未处理的拒绝错误:关系“dbname”不存在
- ssl - ssl 证书设置无效
- google-apps-script - 使用 Google Apps Script 更改 Google Doc 界面的 CSS 是否可行?
- javascript - 在 setTimeout 函数内将元素附加到 DOM 不起作用 - createDocumentFragment & appendChild
- angular - 在Angular中获取未定义错误的错误属性
- powershell - 此计算机上未安装 PSSnapin Microsoft.Sharepoint.Powershell
- redis - 如果连接的客户端断开连接,是否可以从 Redis 服务器获得通知?
- regex - 如何为 GIIN 格式验证创建正则表达式 VBA 宏
- vba - 如何在函数内设置用户窗体的属性