有没有一个配置或一个函数可以强制让android以32位加载动态库so文件

xp_zxw 2016-03-17 03:01:13
目的:有没有一个配置或一个函数可以强制让android以32位加载动态库so文件
背景:在/data/data/"package_name"/lib下面没有so文件,我的32位动态库so文件放在/data/data/XXX/XXX/下面,使用System.load(path)的方式加载。在64位cpu设备下运行会报错:“dlopen("/data/data/XXX/XXX/libgnustl_shared.so", RTLD_LAZY) failed: dlopen failed: "/data/data/XXX/XXX/libgnustl_shared.so" is 32-bit instead of 64-bit”。
备注:我的so文件都是32位的,没有32位和64位混杂的情况
尝试:如果把出错的libgnustl_shared.so放在/data/data/"package_name"/lib下面,则可以顺利启动。
...全文
1274 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33285535 2017-06-10
  • 打赏
  • 举报
回复
引用 3 楼 llxxhm 的回复:
[quote=引用 1 楼 zpq19870824 的回复:] 肯定没得三 必须64位的 32位的只能在32位的操作系统下运行
这个是没有试在这里乱说, 我试过了, 64bit系统可以用32bit的so[/quote]但是32位的不能在64位的系统使用
放空di自己 2016-09-22
  • 打赏
  • 举报
回复
引用 6 楼 qq_17483359 的回复:
defaultConfig { ...... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" } } 这时会报错,因为gradle的配置中,并不知道是否要做操作系统的兼容,这时只要在gradle.properties文件中加上 Android.useDeprecatedNdk=true 就可以了。
亲测有效,谢谢!!!!
qq_17483359 2016-09-20
  • 打赏
  • 举报
回复
defaultConfig { ...... ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" } } 这时会报错,因为gradle的配置中,并不知道是否要做操作系统的兼容,这时只要在gradle.properties文件中加上 Android.useDeprecatedNdk=true 就可以了。
muyioo 2016-09-13
  • 打赏
  • 举报
回复
楼主这个问题解决了吗
meacwctmarqcd466 2016-09-13
  • 打赏
  • 举报
回复
楼主这个问题解决了吗
QQ515311445 2016-05-20
  • 打赏
  • 举报
回复
引用 1 楼 zpq19870824 的回复:
肯定没得三 必须64位的 32位的只能在32位的操作系统下运行
这个是没有试在这里乱说, 我试过了, 64bit系统可以用32bit的so
xp_zxw 2016-03-17
  • 打赏
  • 举报
回复
64位处理器可以运行32-bit动态库
_周星星 2016-03-17
  • 打赏
  • 举报
回复
肯定没得三 必须64位的 32位的只能在32位的操作系统下运行

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧