UnsatisfiedLinkError: dlopen /data/data/package/app_jni_lib/libxxx.so is 32-bit instead of 64-bit

本文主要是介绍UnsatisfiedLinkError: dlopen /data/data/package/app_jni_lib/libxxx.so is 32-bit instead of 64-bit,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天掉到一个大坑里,本来说要增加arm64的支持,心想这还不简单,在libs目录下新建一个arm64-v8a的目录,然后对应的libxxx.so放进去就万事大吉了。提完patch,在三星Galaxy S6上试了一下没问题,就上线了~~  结果刚上GP半小时,出现好几十个崩溃,评分刷刷刷往下掉,吓死宝宝了。。。报的错都是说库是32位的:

java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/<package>/app_jni_lib/libxxx.so" is 32-bit instead of 64-bitat java.lang.Runtime.load(Runtime.java:331)at java.lang.System.load(System.java:981)
难道放错库了?用“file libxxx.so”检查了一下,确定我放的是64位版本的库:ELF 64-bit LSB  shared object, ARM aarch64, version 1 (SYSV), dynamically linked, stripped

另外,如果放错库的话,三星Galaxy S6上也应该会崩啊?又仔细看了下后台,发现这些出崩溃的手机没有一个是三星的,全部都是小米或者华为。于是找了台小米5过来试了一下,果然一启动就崩。

看了下加载这个so的代码,发现不是直接用System.load()来加载的,而是先判断/data/data/<package>/lib目录下有没有这个so,有的话就直接加载,没有的话就从apk的zip包里把lib/armeabi下面的库拷贝到/data/data

这篇关于UnsatisfiedLinkError: dlopen /data/data/package/app_jni_lib/libxxx.so is 32-bit instead of 64-bit的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940138

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

解决Failed to get nested archive for entry BOOT-INF/lib/xxx.jar问题

《解决FailedtogetnestedarchiveforentryBOOT-INF/lib/xxx.jar问题》解决BOOT-INF/lib/xxx.jar替换异常需确保路径正确:解... 目录Failed to get nested archive for entry BOOT-INF/lib/xxx

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

HTML5 data-*自定义数据属性的示例代码

《HTML5data-*自定义数据属性的示例代码》HTML5的自定义数据属性(data-*)提供了一种标准化的方法在HTML元素上存储额外信息,可以通过JavaScript访问、修改和在CSS中使用... 目录引言基本概念使用自定义数据属性1. 在 html 中定义2. 通过 JavaScript 访问3.

springboot将lib和jar分离的操作方法

《springboot将lib和jar分离的操作方法》本文介绍了如何通过优化pom.xml配置来减小SpringBoot项目的jar包大小,主要通过使用spring-boot-maven-plugin... 遇到一个问题,就是每次maven package或者maven install后target中的ja

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,