AndroidStudio打包Apk java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader:couldn't find "lib

AndroidStudio打包Apk java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader:couldn't find "lib 自己给哥们帮忙处理的一个问题,希望这个经验能帮助到更多的同学! 阅读详情
原文地址:http://blog.youkuaiyun.com/sinat_22657459/article/details/53420047
我本来也想写的,结果他先写好了,我就转过来吧,哈哈,这两天被微博整的烦躁啊。。。     

早上一来,一哥们找我,让帮忙看个问题,是他们的工程在使用微博SDK的功能时候,开发工具用的AndroidStudio,工程中有添加微博规定的so库,但是一运行,就直接崩溃,报couldn't find "libweibosdkcore.so",so库找不到。好,拿到问题,还是要先根据现象分析,判断清楚问题产生的原因在哪里。

这里写图片描述

 首先,使用微博给出的demo,gradle配置也是完全相同的,运行完成,正常,加载so库和调用方法都没有问题。然后运行自己的项目,调用System.loadLibrary("weibosdkcore")加载微博的so库时就直接崩溃,问了下他,各种查找,各种百度,各种google,都用了,但是问题仍然没有解决。然后还给我说,在微博的开放平台上各种找,也没有办法,里边推荐的QQ群也满了,根本加不进去,发邮件给微博,屁都没有回。这种感觉我也是有的,之前搞过一个项目,也是调用微博的功能,出现个问题,各方面找,就是没办法,也是相同的给微博发邮件,但是泥牛入海,根本没有因信,所以从那之后就不找官方了。

 估计官方人员都是非常繁忙,没鸟空理会我们这些屌丝!!

 娘的,没人回就自己搞!开始让我们哥们把他初始化的代码和崩溃的日志发过来看下,初始化调用和崩溃的截图如下:

这里写图片描述
这里写图片描述

 那么首先就要确定一下,apk安装完成后,对应的so库到底有没有成功解析出来?大家都知道,每个工程对应有个data目录,就是放的工程的各种文件,有sharedPreferences、file、database、lib,其中的lib就是存放我们在工程当中引用的so库的,好,我让他adb shell进入当前的工程目录下看一下,结果确实没有。

这里写图片描述

 而其他两个so库是正常的,好,那么我们需要进一步确认了,为什么so库没有,是打包apk时候就出问题了,还是PMS在安装过程中解析apk出问题了?PMS解析apk出问题,这个应该不可能,如果是这样,那demo应该也会崩溃了,而且这是系统安装的必要步骤,这里出问题的概率应该非常小,基本上就是不可能!好,那么从第一个猜想入手,是不是AndroidStudio打包apk时,对应的微博so库根本没进来,这个可能性还是比较大的,第一,AS推出时间不久,有一些小的Bug也是正常的,另外呢,他们的工程当中gradle配置是不是有问题,可能也有可能和扰码有关,之前也碰到过我们哥们问我的,最终查出来就是和项目扰码导致的问题。那么怎么验证这个猜想呢?最直接的就是把apk文件解压一下,看看那个so库到底有没有。

在让他试的过程中,自己也各种百度,找到一个跟他的崩溃描述非常相似的,不过全英文,自己也没怎么看。

[The Perils of Loading Native Libraries on Android](http://blog.youkuaiyun.com/sinat_22657459/article/details/53420047)

 大家如果有英文非常好的,希望能翻译出来看一下,他解压完看了下,果然,lib目录下根本没有微博的so库:

这里写图片描述
我们初步的判断已经正确了,问题的范围缩小了一些。那么demo为什么是正常的呢,让他把demo解压也看一下,demo当中根本没有lib目录。
这里写图片描述

 看来很可能是gradle配置的问题了,两个工程出来的apk文件目录都不一样,真可惜,自己对gradle又一点不懂。又让他把工程的build.gradle发过来看一下。

这里写图片描述

 跟so库相关的配置就是sourceSets节点了,然后又各种百度,发现网上有说如下这样配置的:

这里写图片描述

 自己先搞个Demo,按照两种配置试了下,果然,第一种配置没有lib目录,而第二种配置就会有lib目录了,而且微博的so库也在当中。

这里写图片描述
这里写图片描述
我靠,真是如获至宝啊!!!!让他再试了下,果然,打包出来的apk解压出来也是有对应的so库的,再运行一下,OK,没有问题!!!哈哈哈哈哈,好兴奋,又给哥们帮忙搞了个问题,自己也赶紧写个博客记录下来,以免自己以后碰到又忘了!

 最终的解决方案如下:

 原始build.gradle中sourceSets的配置如下:

 sourceSets {
     main {
         jniLibs.srcDirs = ['libs']
     }
 }

 将其改为如下:

 sourceSets {
     main {
         jni.srcDirs = []
         jniLibs.srcDirs = ['src/main/jniLibs']
     }
 }

 从这里其实最终解决问题是小,最主要的是想给大家说一下我们解决问题的思路,尤其在碰到一些自己根本没办法的问题时,一定要一步步将问题的范围缩小,如果能最终确定问题的产生原因,那解决它就是小case了!

 好了,希望本博客能给碰到相同问题的同学带来帮助,也希望大家关注我的博客!!
Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader报错解决方法 错误分析 这个错误是so库加载问题,报错一般以 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader开头。一般是程序在运行过程中调用System.loadLibrary(“xxxxxxxx”);是无法找到libxxxxxx.so文件导致的报错。针对这个错误我们可以一边排查一边来解决。 问题分析和解决 1.查看so库是不是已经在编译的过程中打包到apk里。 方法: 找到项目的这个目录app\build\outputs\apk,然后.. 阅读详情

相关推荐

dxf-viewer 查看器

dxf-viewer SDK 的示例,它是一个基于 Three.js 和 Vue3 构建的基于 WebGL 的 BIM 模型查看器。它用于查看 DWG/DXF/PDF 文件。面积测量 - 角度测量 -标记。

qq_25547755的博客 866

如何解决 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

在 ndk 项目中,运行时出现 crash,当报错信息为:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file ]]] couldn't find "xxx.so"时,是因为so文件加载异常。

hello_1995的博客 1万+

RingBuffer 环形缓冲区----镜像指示位

称作环形缓冲区,也称作环形队列(circular queue),是一种用于表示一个固定尺寸、头尾相连的缓冲区的数据结构,适合缓存数据流。这个宏定义用于计算向下对齐的地址。size和align。size是要对齐的内存大小,align是所需的对齐大小。这个宏返回一个值,该值是size向下对齐到align边界后的地址。例如,假设我们有一个 32 位的系统,并且我们需要将数据对齐到 64 位的边界。我们可以使用在这个例子中,data数组的大小为 10 个元素,我们需要将其对齐到 8 字节边界。宏返回data。

呵呵哒!的博客 2408

Android: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList...问题的解决方案

异常 导入第三方SDK并编译运行时,出现了:“Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/system/framework/org.apache.http.legacy.boot.jar”, zip file “/data/app/com.yiguozhen.handheldsmart-SWfW3u7Cj8q39Ii-pdhONg==/base.apk”],n

易小四的博客 1万+

PyCharm中Pyvips配置避坑指南:为什么pip安装后import还是报错?

本文详细解析了在PyCharm中配置Pyvips时,即使pip安装成功,import仍报错的根本原因。核心在于Pyvips依赖的libvips原生库未正确配置环境变量。文章提供了从下载libvips、配置Windows系统PATH到PyCharm项目级设置的完整避坑指南,并对比了三种配置策略,帮助开发者彻底解决DLL加载失败问题。

bush的博客 209

Aras Innovator系统配置-01对象类(一)

对象类配置-对象类属性说明

企业信息化(PLM,ERP.MES) 2032

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[Dex ......couldn‘t find “xxx.so“

错误描述 NDK开发时,编译跑起来后,报错java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file............couldn't find "xxx.so" at java.lang.Runtime.loadLibrary0(Runtime.java:984) at java.lang.System.loadLibrary(System.java:1562) ...

hnlht的专栏 2543

CDR插件开发之CPG插件004 - 认识VGCore并编译生成你的第一个CPG文件

上篇文章中,讲到了使用VS2019编译CDR类型库 VGCoreAuto.tlb,编译后得到了vgcoreauto.tlh和vgcoreauto.tli两个文件。本文将对这两个文件说明,并演示通过标准的libid形式来导入CDR类型库,在这个过程中,穿插一些VS2019的使用技巧(删除目录、复制工程、打开项目或解决方案、修改解决方案名称、修改项目名称等),使读者循序渐进,逐步提高对VS2019工具的熟练程度,最后通过修改项目属性配置,生成第一个CPG文件。

Zebe 2984

Android java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader报错解决方法大全

错误分析 这个错误是so库加载问题,报错一般以 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader开头。一般是程序在运行过程中调用System.loadLibrary(“xxxxxxxx”);是无法找到libxxxxxx.so文件导致的报错。针对这个错误我们可以一边排查一边来解决。 问题分析和解决 1.查看so库是不是已经在编...

木寸~ 3万+

2024 年高教社杯全国大学生数学建模竞赛 E 题 交通流量管控 详细思路+matlab代码+python代码+论文范例

随着城市化进程的加快、机动车的快速普及,以及人们活动范围的不断扩大,城市道。景区周边道路上既有本地居民出行,也有过境车辆,化配置,在保证车辆通行的前提下,使得两条主路上的车流平均速度最大。对五一黄金周期间的数据进行分析,判定寻找停车位的巡游车辆,并估算假。相位通过的每辆车的信息,包括拍摄地点、行驶方向、拍摄时间和车牌号。济发展和百姓幸福感的一个“痛点”,是相关部门的棘手难题之一。纬中路交叉口,根据车流量的差异,可将一天分成若干个时段,估。是小镇中两条主路的情况:纬中路,从环西路到环东路,约。

YOLO 3310

【测开求职】面试题:操作系统 吐血整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。涵盖考研范围内的所有知识内容,读者可以先查看上面的链接走一遍操作系统的整体框架结构。其中,重点难点以及易混淆的知识点,笔者用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。另外操作系统在校招中有非常明显的重点,一般情况下只会考察进程管理,内存管理,和设备管理,且这三者考察频率依次递减,文件管理基本不会考察。

vector的博客 7909

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

结论:一般情况为androidstudio配置问题,或者发疯问题,如果没有配置错误clean一下。 解决办法: 第一种、在名为B的SDK的官网中下载其它文件夹中的.so文件,并拷贝到相应的文件夹中 第二种、删除文件文件夹arm64-v8a和armeabi-v7a,并且在build.gradle中android下添加指定依赖包 [armeabi中so文件兼容问题,异常java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoaderDexPathLi

云梦九章~ 5500

AI智能体丨使用Coze一键生成中式养生视频,39 条作品涨粉 37.9 万!(附保姆级教程)

本文介绍如何利用扣子(Coze)AI智能体工作流高效制作中式养生短视频。该方案通过AI自动生成养生文案、古风插画素材、语音合成和视频剪辑,将传统制作流程从2-3小时缩短至1-2分钟。工作流包含文案创作、音频生成、图片素材制作和视频合成四大模块,采用大模型处理各环节内容,最终输出可直接导入剪映的草稿文件。特别适合希望快速批量制作文化氛围感强、兼具干货与视觉效果的养生内容创作者,效率提升近百倍。

李同学Lino的博客 3028

Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 解决方案

Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 解决方案 错误log:Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList[[zip file “/data/app/com.pckgname.live-2/base.apk”],n

Nobita_dgut的博客 1022

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java.lang.UnsatisfiedLinkError解决办法

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader 首先找到bulid.gradle(Moudle)文件 添加以下两个配置 (1)在defaultConfig 中添加 defaultConfig { multiDexEnabled true ndk { abiFilt...

Seven丶Echo的博客 7801

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader错误原因与解决办法

我发生换个错误的场景是:集成了一个第三方的SDK,配有.so文件 但是只配有armeabi版本的cup的.so文件。但是因为项目生成apk的时候不只含有这个型号的文件夹,如下图: 导致如果你的手机版本不是armabi的版本,比如系统自动首先寻找到了armeabi-v7a的文件夹,但是那个文件夹中没有相对应的.so文件,所有就会报这个错误,.so文件找不到。 那么解决办法是什么呢: 1:找...

Lud的博客 3918

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader...couldn‘t find “xxx.so“的解决方法

这个问题一般是引入第三方SDK的时候,有的sdk里面缺少相应框架的so库,可以加载so库文件的时候使用gradle对加载so文件进行过滤 在app中的build.gradle文件中添加过滤 android { defaultConfig { ndk { abiFilters "armeabi-v7a", "x86", "armeabi" } } } 一般来说 ,手机的cpu架构都是基于arm架构,电脑的模拟器和intel处理器的

冰忆的博客 733

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader错误记录

Android studio版本3.6 NDK开发过程这个问题就是没有找到对应so库造成的 完整的错误日志 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.pbph.ffmpegdemo-JyNw8Rk8pViQBFoHfRx06g==/base.apk"],nativeLibraryDirectories=[/data/app/com.pbph.ffmpeg

春暖花自开 1325

Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader解决方法

在app中使用了so库,之前一直运行的很好,不知道怎么回事,在重构其它功能后,编译完的app无法调用.so的库,报找不到路径。 我猜测可能是由于重构过程中,对工程的配置有修改影响了.so的加载。 异常内容: Java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader [DexPathList[[zip file “/data/a

自由空间 6155

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList

出现的错误: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.app_myapp-1/base.apk", zip file "/data/app/com.example.app_myapp-1/split_lib_dependen...

jxsjl168的专栏 3382

Android运行时报错:java.lang.UnsatisfiedLinkError:dalvik.system.PathClassLoader couldnt find liblocSDK6.s0

报错详细信息如下 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader:couldn't find "liblocSDK6.so" 原因   程序中未找到liblocSDK6.so文件,可能是未引入或者是引入错误或者是引入失败 解决方法   查看abiFilters设置的架构类型和对应的jniLibs目录下的文件夹名称是否一致...

No errors,no gains! 690

【错误记录】Android 应用执行报错 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[ )

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.example.app-7GPRX3SHDXuOB6ERQJ3_dg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1905

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framew

错误问题 缺少或无法读取 librsjni.so 等 2018-10-22 10:40:59.390 26530-26530 : dlopen(/system/lib/librsjni.so) failed becuase of library “/system/lib/librsjni.so” needed or dlopened by “/system/lib/libnativeloade...

博客 2626
上一篇: Android开发 APP集成QQ、微信和微博分享
下一篇: AndroidStudio线上APK打包.Error:The number of method references in a .dex file cannot exceed 64K.
Android小屋
博客等级 码龄12年 82粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值