大家好,我是腾讯Bugly的精神哥(英文名:spirit),是Bugly资深码奴的同时,又是Bugly神秘的Crash实验室研究员哦!我的主要任务就是泡在实验室里,嗑着瓜子嚼着鸡爪,研究移动App中各种Crash(专挑疑难、坑爹、时髦、有趣的Crash),并通过“精神哥讲Crash”系列定期分享给大家! 今天精神哥给大家分享的第一个Crash是“UnsatisfiedLinkError” 。 一、UnsatisfiedLinkError基本介绍 全名java.lang.UnsatisfiedLinkErro
官方地址 https://www.adictosaltrabajo.com/2021/11/12/maven-mac-m1-aarch64-fabric8-docker-maven-plugin/
已解决Java中的java.lang.UnsatisfiedLinkError异常
so 加载的过程可以参考小米的系统工程师的文章loadLibrary动态库加载过程分析[1]
最近看一个NDK项目,因为源码使用Eclipse IDE写的,想把代码导入Android Studio使用,毕竟好用很多,使用AS导入后,第一个问题就是编码问题,项目之前竟然使用的是GBK编码。首先就是改变编码问题。我先在设置中将项目编码改为UTF-8,build结果显示一堆错误的乱码,在网上逛了一圈,找到解决方案。
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pckgname.live-2/base.apk"],nativeLibraryDirectories=[/data/app/com.pckgname.live-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libvinit.so"
首先UnsatisfiedLinkError的种类很多,我这里遇到的是 java.lang.UnsatisfiedLinkError: nativeLibraryDirectories=[*****/lib/arm64, *****/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libmytool.so" 可以看到我这里主要是因为在这几个文件夹中都没有找到我的so库导致的。 仔细一看,我的jniLibs中确实只有一个armeabi
很明显是因为 native 方法找不到,google 下发现该错误出现频率还蛮高的,基本有两种:
找不到openTest这个Native方法导致的错误,so库里面的方法路径、方法名称都是固定的,java里面如果不对应就会导致这个错误,可以通过查看your.so文件来确定对错,文本编辑器用十六进制方式打开your.so,搜索报错class类名,排除错误,效果图如下:
前言 不用介绍啦,何老师出手,黑科技降临。 在项目开发中,时常会用到 JNI 库,以提供一些特定的功能,而在 xposed 开发中,也会有这样的需求,然而,在 xposed 的条件下,要加载一
Android系统中使用ndk进行编程,有很多的好处(Java的跨平台特性导致其本地交互的能力不够强大,一些和操作系统相关的特性Java无法完成;代码的保护:由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大;可以方便地使用C/C++开源库;便于移植,用C/C++写的库可以方便在其他平台上再次使用;提供程序在某些特定情形下的执行效率,但是并不能明显提升Android程序的性能)。
Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。
早期的Android系统几乎只支持ARMv5的CPU架构,你知道现在它支持多少种吗?7种!
Windows系统下载这三个文件:sigar-amd64-winnt.dll、sigar-x86-winnt.dll、sigar-x86-winnt.lib。放到jdk安装目录即可!
因为要安装 WAS 8.5.5 (WebSphere Application Server), 所以必须先安装IM (Installation Manager)。
通过软件 DependenciesGui.exe 检查CloseLoopCalDll.dll动态库
本周协助测试同事对一套测试环境进行扩容,我们扩容很原始,就是新申请一台机器,直接把jdk、resin容器(一款servlet容器)、容器中web应用所在的目录,全拷贝到新机器上,servlet容器和其中的应用启动没问题。以为ok了,等到测试时,web应用报错,初始化某个类出错。报错的类长下面这样:
调用企业微信会话存档sdk时,报错Exception in thread "main" java.lang.UnsatisfiedLinkError:com.tencent.Finance.NewSdk()J
接的遗留代码,在本地运行,有jmagick-6.4.0.jar 但是出现错误: javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class magick.ImageInfo main里新建一个ImageInfo 则出现错误: Exception in thread "main" java.lang.UnsatisfiedLinkError: no JMagick in java.libr
开源地址: https://github.com/AnyMarvel/ManPinAPP
原因: public class JniSocket { static { System.loadLibrary("SmartSocket"); }
如题,今天开发Android串口时的使用android-serialport-api开源库,集成到项目中,然后就崩了,出现了下面的错误:
I have written a Java agent in Lotus Notes 8.5 to reset token’s PIN using
java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/xx/lib/arm/libxx.so: has text relocations
解决办法:将jansi.dll文件放到C:\Windows\System32目录下即可。
http://blog.csdn.net/lxk_1993/article/details/51579816
接着一,继续记录hadoop环境遇到的一些问题。 1. 报错信息:Hadoop-Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
Caused by: java.lang.UnsatisfiedLinkError: unsupported JNI version 0xFFFFFFFF required by C:\jnwasapi.dll
开始之前先来几句废话。 今年的博客更新频率低了很多,而且最近几周微信公共账号的更新也暂停了一段时间,没能坚持下来,确实是自己的问题。不过今年这半年确实事情太多,不管是工作还是私事,从来都感觉时间完全不够用。目前SDK的相关工作已经正常,热更也基本上进入开发的中后期,因此开始逐渐把一些之前积累的内容补上,后续会把上半年遇到的计划的文章陆续更新完成。 由于上半年做的事情中,最大的一块就是SDK的热更新,因此就从SDK的热更新开始分享,后面会穿插分享别的内容。 这篇文档优先介绍在SDK热更中遇到到的第一个比较头疼
GameActivity继承于UnityPlayerActivity,不会存在找不到com.unity3d.player.UnityPlayerActivity.onResume的情况
最近,将一个包含有百度地图SDK的Eclipse工程导入到Android Studio环境下时,运行进入App地图窗口出现了闪退,错误提示:java.lang.UnsatisfiedLinkError: No implementation found for long com.baidu.p……。
前言 Android插件化工程具有减少方法数和包大小,易于扩展等优势,深得大型工程的青睐,但同时插件化也会引起一些意想不到的麻烦。我们最近在做的插件工程就遇到了一个诡异的JNI链接错误。 我们的插件工程作为主工程的具体业务,主工程提供了基础的类库和工具,插件工程有自己的ClassLoader,并把主工程的ClassLoader设为自己的父ClassLoader,通过双亲委托,插件工程就可以访问主工程中的类。在主工程中有一个类库,有JNI方法,但为了减少主工程的包大小,so文件由插件在用到时自己下载和加载。
在 【Android 安全】使用 360 加固宝加固应用 ( 购买高级加固服务 | 设置资源加固 | 设置 SO 文件保护配置 | 设置 SO 防盗用文件配置 | 反编译验证加固效果 ) 加固时 , 遇到的问题 ;
继之前写的“WAS 8.5在AIX上无法启动图形化概要管理工具WCT或PMT之解”之后
在执行 Java程序时经常会碰到ClassNotFoundException和NoClassDefFoundError两个异常,它们都和类加载有关,下面详细分一下这两个异常的原因。
本博客转载自网址:http://blog.csdn.net/urrjdg/article/details/78091094
JNI目录,需要mk文件,头文件和源文件。这里头文件和源文件故意不统一文件名,也可实现效果。
MakeProject或者 RebuildProject之后,到 app下的 build⽂件夹找到 class所在⽬ 录; 进⼊到包名的上级⽬录,运⾏:javah -jni com.example.jnitest.JNITools ⽣成⼀个 com_example_jnitest_JNITools.h⽂件,com.example.jnitest.JNITools是 你 JNI⼯具类所在引⽤,可根据实际情况修改。
为什么会有本地接口的概念呢?我们在之前的文章说过Java语言不是面向硬件的,它无法直接调用操作系统API操控硬件,Java和硬件的交互正常都是通过JVM提供的API来完成的,但是当虚拟机提供的API不足以实现我们个别需求的时候,就需要本地接口了。由于JVM底层就有C++的影子,所以JVM也提供了JNI(Java本地接口:Java Native Interface,)技术作为其它语言(主要是C/C++)通信的API。在本地接口的相关的概念里,Java成为了一个调用方,其他语言成为了主角,这篇文章我们以C++为例,看一下如何调用本地接口,关于C++的部分尽可能简单的描述,如果大家还有疑问可以了解一些C++的基本知识。
于是又查看了虚拟机的jdk(病急乱投医) 虚拟机的jdk也是64位的,一时不知道是哪里的错误了
SAPJCO官方站点 The SAP Java Connector 3.1 requires a JDK/JRE 8 or 11. In addition, the SAP Java Connector 3.1 running on Windows operating systems requires the Microsoft Visual Studio 2013 C/C++ runtime libraries to be installed on the system. JCO3.1版本需要8\11版本JRE,并需要安装MS VS2013 C++运行库
1. Java.lang.UnsatisfiedLinkError: No implementation found for int[]
Android端LiteAVSDK集成文档参考: https://cloud.tencent.com/document/product/454/7877
jna在windows和linux下使用都很简单只要导入jna.jar就可以,maven中如下引入就可以了
领取专属 10元无门槛券
手把手带您无忧上云