Android Studio 加载 .so库出现couldn't find "*.so"

AndroidStudio打包Apk java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader:couldn't find "lib 自己给哥们帮忙处理的一个问题,希望这个经验能帮助到更多的同学! 阅读详情

1.首先检查so文件存放位置,so可以放在app/libs里,也可以放在src/main/jniLibs里。

如果放在app/libs里,需在app/build.gradle中添加如下代码

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


参考:

Android studio添加第三方库和so https://blog.youkuaiyun.com/dodod2012/article/details/80005292

2.如果so,存放正确,报错代码如下:/lib/arm64, /vendor/lib64, /system/lib64 couldn't find "libstlport_shared.so"

原因是这部份手机是64位处理器的,所以找so的时候先从/lib/arm64, /vendor/lib64, /system/lib64这几个目录找。

解决方法:
在gradle.properties加上

android.useDeprecatedNdk=true

build.gradle加上

android {
    ...
    defaultConfig {
        ...
        ndk {
            abiFilters "armeabi" //, "x86", "armeabi"  按需设置
        }
    }
}



android studio 3.2 使用cmake在jni生成及使用C/C++静态库 关于cmake jni的基本教程可以看我另外一篇博客 https://blog.csdn.net/qq_34759481/article/details/83825826 关于使用动态库可以看我的另外一篇博客。 在看本篇之前,最好先看这篇动态库的,一些比较基本的操作,都在这里面。本篇不会讲的很细。 https://blog.csdn.net/qq_34759481/article/deta... 阅读详情

相关推荐

AndroidStudio生成安卓共享库(sharedlibrary)

背景 因工作需要,想要在提供一种能力,供三方apk进行调用,通常的解决方式就是通过提供aar给到三方apk进行继承。但是这样的方式就会有一个明显的缺陷,就是在资源文件众多的时候,aar文件会变得非常大,进而导致三方apk的包体变大。这样显然是不利于三方进行接入,并且在多个apk集成后,同样的内容在同一个系统中打包了多份,这显然也不是我们想要的。这个时候,shared-library就十分符合我们的诉求。 网上搜索了半天,关于sharedlibrary实在是少之又少,因此经过一番周折以后,我觉得有必要..

至淡以消忮心 5564

引用vitamio框架提示libffmpeg.so、libstlport_shared.so无法找到的错误

一波三百六十折...问题似乎不止一个,而且总觉得自己已经完美解决了然而没有,所以文章可读性极差,我把解决的方案扔在一个“解决方案”的一级标题下面,读者可以直接点目录跳转。 一开始写博客的时候,就其实有个疑惑, https://blog.csdn.net/nishigesb123/article/details/89554881 官网新手入门 提供的项目地址 和下载链接导向的地址有...

旧日灯塔 3007

Android APK逆向工程实战:动静态调试与so库解密分析

逆向工程是软件安全分析、功能研究和代码审计中的核心技术,其核心原理在于通过静态与动态分析相结合的方式,深入理解程序的内部逻辑与数据流。在移动安全领域,这项技术对于挖掘漏洞、分析恶意软件、学习优秀实现具有重要价值,尤其适用于Android应用的安全评估与功能研究。静态分析如同“阅读蓝图”,通过反编译工具(如Jadx、Apktool)解析APK的代码结构与资源;动态调试则如同“实时监控”,利用调试器与注入框架(如Frida)在运行时观察和干预程序行为。当应用的核心逻辑被编译到so动态链接库中时,分析便进入更底层

weixin_30875157的博客 455

使用Android Studio开发NDK程序时出现couldn't find "lib××××.so的问题

NDK编程是Android开发的一项重要技能,利用JNI编程可以将许多复杂的处理过程用C/C++来进行,从而提高效率! 不了解JNI的同学可以先看看这里 https://blog.csdn.net/cgwang_1580/article/details/79586710 最近,采用Android Studio来进行ndk开发,由于Android Studio 2.2之后采用cmake的方法来...

Blog of Chauncy Wang 7160

Android Studio NDK 构建工具 CMake初探

CMake 是 Android studio 支持的一种新的NDK构建工具,这篇文章主要是对官方介绍的一个翻译和一些简单的尝试。

Final Object 的博客 1万+

NDK使用第三方动态库的例子

ndk编译时如何使用第三方库的例子(PREBUILT_SHARED_LIBRARY)

Android Studio 加载 .so库出现couldn't find "*.so"

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com*.*.*-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "*.so" 如果出

Damein的专栏 1万+

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7612

Android studio加载语音识别libpocketsphinx_jni.so库文件

加载语音识别libpocketsphinx_jni.so文件

kkkk115的博客 1246

Debian 11 下用hostapd+dnsmasq搭建WiFi热点:从命令行到实战(避坑指南)

本文详细介绍了在Debian 11系统上,使用hostapd和dnsmasq从命令行搭建稳定WiFi热点的完整实战流程。内容涵盖环境准备、无线网卡AP模式检查、服务深度配置,并重点提供了从服务启动失败到客户端无法上网等常见问题的系统性排错指南,帮助用户避开配置陷阱,成功创建可用的无线接入点。

CAT789的专栏 774

WPT无线电能传输公式推导、编程计算、仿真验证全过程

主要分为5大模块,分别为无补偿,SS,SP,PP,PS,每个模块对应有公式推导,matlab编程计算相关参数以及将计算参数和仿真验证观察是否对应。采用matlab编程计算参数以及simulink仿真验证

zzhao2580的博客 7758

Android Studio开发jni实例详解 (调用C代码实例)

一、配置NDK环境 第一步:在AndroidStudio中配置ndk环境 需要下载ndk包,在AndroidStudio中File-->ProjectStructure-->SDK Location中配置"Android NDK Location",如下: 下载安装完成后build工程; 第二步:配置环境变量 在计算机属性里面配置环境变量,变量地址是And

u013210543的博客 1万+

学习 考证 帆软 FCP-FineBI V6.0 考试经验

参加这个学习班,认识了新朋友,可能是我职业生涯中的一次重要体验,其实大家想想 IT 和 医生一样都是需要终身学习的。只是医生学习周期更长但是回报率也更高。大家觉的呢?

小 tom的博客 6226

Android集成Unity时SO库加载失败:Gradle配置与解决方案详解

动态链接库(SO库)是Android应用实现高性能计算和跨语言调用的核心技术组件,其加载机制直接影响应用的稳定性和性能。在Android开发中,Gradle构建系统负责将SO库打包到APK的正确位置,确保运行时能被系统加载器正确识别。当进行混合开发,例如将Unity引擎作为库模块集成到Android主应用时,SO库的加载路径和打包流程容易出现错位,导致UnsatisfiedLinkError等运行时崩溃。本文聚焦于Unity与Android混合开发场景,通过剖析Gradle的sourceSets配置、ABI

weixin_34245082的博客 362

从时频谱图到智能感知:雷达信号处理的AI进化之路

本文探讨了人工智能在雷达信号处理中的革命性应用,特别是深度学习在时频谱图分析中的突破性进展。通过对比传统信号处理方法与AI驱动的解决方案,展示了CNN、3D CNN等模型在目标检测、行为识别等场景中的优势,并分析了数据获取、模型优化等关键技术挑战。AI赋能的雷达技术已广泛应用于智能交通、工业检测和医疗健康领域,展现出巨大的发展潜力。

weixin_29284201的博客 507

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)

linux驱动由浅入深系列:块设备驱动之一(高通eMMC分区实例)linux驱动由浅入深系列:块设备驱动之二(块设备驱动结构分析)块设备驱动的模型还是基本基于字符设备驱动的,可以简单理解为块设备仅仅增加了操作缓冲区,对用户请求顺序进行队列重拍等等。字符设备驱动的相关分析可以查看本博客相关的博文。 按照本博客的行文习惯,在具体分析块设备驱动代码之前,我们会从整体上了解一下研究对象的特征,以及用户空间...

Radia的专栏 1万+

dalvik.system.PathClassLoader[DexPathList[[zip file xxx ]] couldn't find "libplayer.so"

AndriodStudio集成 FFmpeg环境,报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.player-Bhalv81bWdaEyxPpDfXPvg==/base.apk"],nativeLibraryDirector...

weixin_35937808的博客 1614

形状记忆合金热机械本构模型的ABAQUS子程序实现与Fortran\_ABAQUS编程实践

本文详细介绍了如何使用ABAQUS子程序实现形状记忆合金的热机械本构模型,并通过Fortran_ABAQUS进行编程实践。我们首先介绍了问题的背景和目标,然后讲解了如何在Fortran_ABAQUS子程序中实现热变形模型、应力应变关系和相变模型,最后进行了ABAQUS模拟,并分析了模拟结果。希望通过本文的讲解,能让大家更深入理解ABAQUS子程序以及Fortran的使用,也希望能对大家在进行相关学习或研究工作时提供一些帮助。

qq_38334677的博客 1328

android使用so找不到方法,Android studio so库找不到问题解决办法

Android studio so库找不到问题解决办法问题:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.bb.aaaa.nfcandimg-1/base.apk",zip file "/data/app/com.bb.aaaa.nfcandimg...

weixin_36430300的博客 458

【OpenClaw】Edict 三省六部制部署与启动

文章摘要 本文聚焦Edict系统的本地部署与启动,提供三种安装方式:Docker快速体验、macOS/Linux原生安装和Windows生产仿真。核心目标是让用户能够独立完成系统启动和基础问题排查,确保看板、后端服务、同步脚本和网关正常运行。文章强调环境检查的重要性,并给出具体验收标准:浏览器能访问看板页面(http://127.0.0.1:7891)和接口返回JSON数据。同时提供一键启动/停止脚本和常见问题处理建议,帮助用户快速验证部署结果。配套系列教程涵盖部署启动、使用实战、二次开发和封装版本使用等内

Mr数据杨 2902

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android studio中如何引入.so库

两张方式 1. 在图一中的第2-5行,也就是Android Studio中这个文件夹jniLibs里的.so文件,在程序安装后,被写到了手机的这个目录下/data/data/cn.hdnc.artandroidclient/lib/2. 如何把libs目录中的.so文件打包进apk呢?需要在build.grald文件中,配置jniLibs的路径即可,android { sourceSe

zhou_anzhuojinjie的博客 370

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android开发中快速定位.so文件来源的完整解决方案

在Android应用开发中,Native库(.so文件)的管理是构建过程中的关键环节。这些共享对象库通过AAR依赖、本地jniLibs或NDK编译等路径进入最终APK,其来源追溯直接影响包体积优化、Native崩溃排查和许可证合规审计。理解Gradle构建系统的依赖解析机制,掌握从命令行工具到IDE可视化分析的方法,能够帮助开发者精准定位每个.so文件的引入源头。特别是在处理【armeabi-v7a】与【arm64-v8a】等多ABI架构时,通过自动化脚本分析依赖图谱,可以有效解决库冲突、重复引入等工程难题

weixin_33701617的博客 410

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android开发中快速定位.so文件来源的完整指南

在Android应用开发中,动态链接库(.so文件)作为C/C++代码编译后的产物,承载着核心计算逻辑,尤其在涉及NDK、音视频处理、图像识别等高性能场景时至关重要。其工作原理是通过Java Native Interface(JNI)实现Java/Kotlin代码与本地代码的交互,从而突破虚拟机性能限制,直接调用底层系统资源。这种技术价值在于能够显著提升计算密集型任务的执行效率,并复用成熟的C/C++生态库。在实际工程实践中,.so文件的管理常面临依赖来源模糊、版本冲突、ABI兼容性等挑战,特别是在引入第三

weixin_30268071的博客 327

couldn‘t find DSO to load: libfbjni.so result: 0

问题:新搭React-native项目0.63.2版本,第一次安卓真机运行安装完成后闪退,Android studio内报错:couldn’t find DSO to load: libfbjni.so result: 0 解决:修改 android/app/build.gradle 文件,添加以下代码 defaultConfig { ··· ndk { abiFilters "armeabi-v7a","x86" } } packagingOption..

张瑞东的博客 2007

新手也能看懂的IDA反汇编实战:从APK里挖出SO库的CheckString函数

本文详细介绍了如何使用IDA Pro进行Android SO文件的反汇编分析,从APK中提取SO库并定位关键函数CheckString。通过实战案例演示了字符串交换算法和校验逻辑的逆向过程,适合CTF和逆向工程新手快速入门SO层反汇编技术。

weixin_30781433的博客 443
上一篇: Android studio添加第三方库和so
下一篇: Android Studio出现Error:No service of type Factory available in ProjectScopeServices.
dodod2012
博客等级 码龄15年 244粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值