【错误记录】Android 应用配置第三方 so 动态库 ( /data/app/comxxx==/base.apk/lib/arm64-v8a]couldn‘t find “libx.so“ )
2023-06-13 09:17:59 时间
文章目录
一、报错信息
应用运行时报错 :
2021-11-19 16:22:58.014 13244-13244/com.example E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example, PID: 13244
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.example-5snWC60wIs8cUjw0BF99qg==/base.apk"],nativeLibraryDirectories=[/data/app/com.example-5snWC60wIs8cUjw0BF99qg==/lib/arm64, /data/app/com.example-5snWC60wIs8cUjw0BF99qg==/base.apk!/lib/arm64-v8a, /system/lib64]]] couldn't find "libmp3lame.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
at com.buihha.audiorecorder.Mp3Recorder.<clinit>(Mp3Recorder.java:19)
at com.example.base.MainActivity.start(MainActivity.java:304)
at com.example.base.MainActivity.control(MainActivity.java:163)
at com.example.base.MainActivity_ViewBinding$1.doClick(MainActivity_ViewBinding.java:42)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22)
at android.view.View.performClick(View.java:6597)
at android.view.View.performClickInternal(View.java:6574)
at android.view.View.access$3100(View.java:778)
at android.view.View$PerformClick.run(View.java:25885)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
二、修改方案
Java 中加载动态库时 , 由于在应用中没有配置对应动态库信息 , 报上述错误 ;
在 build.gradle 配置文件中配置导入的第三方动态库目录 ;
android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
然后将动态库拷贝到 libs 目录下 , 推荐为
种 CPU 架构都准备一个动态库 ;
相关文章
- android 参数 attrs.xml,android – 定义自定义attrs
- android签名命令行,Android系统签名位置及命令
- Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!
- 测试android sdk是否安装成功,配置Android SDK
- android定时器取消,Android定时器崩溃取消
- android短信验证码方案,Android之短信验证码
- Android mtk_Android开发app
- 利用Frida绕过Android App(apk)的SSL Pinning
- java基于springboot外卖系统在线订餐系统app源码厨艺论坛APP
- 软件测试|一键搞定centos7的docker+selenium+appium+jenkins+android_app源码打包成apk的环境搭建
- android 个人中心下拉弹回效果-PullscrollView
- 【Android 安全】DEX 加密 ( 支持多 DEX 的 Android 工程结构 )
- 【Android 返回堆栈管理】打印 Android 中当前运行的 Activity 任务栈信息 | Activity 任务栈信息分析 | Activity 在相同 Stack 中的不同 Task
- 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | BaseDexClassLoader 构造函数 | DexPathList 构造函数及后续调用 )
- 【Android Gradle 插件】AaptOptions 配置 ④ (failOnMissingConfigEntry 配置|ignoreAssets/ignoreAssetsPattern配置)
- 【错误记录】Android Studio 集成 ARoute 编译报错 ( 兼容 support 库和 androidx 库 | add ‘tools:replace=“android:appCo )
- 【错误记录】Android Studio 编译报错 ( Could not resolve com.android.tools.build:gradle:7.4.2. )
- Android RecyclerView实现子元素的Group分组,LinearLayoutManager垂直方向详解手机开发
- android开发,http工具类详解编程语言
- 跟App相关的Android辅助类详解编程语言
- Android平台每18秒就有一个恶意程序诞生
- APP与MySQL实现无缝连接让你办公更轻松(app连接mysql实例)
- 基于App与MySQL交互实现数据读写示例(app读写mysql例子)
- APP访问MySQL从零开始(app 访问mysql)
- 掌握App接入MySQL的技术(app如何接入mysql)
- 使用MYSQL技术打造高效电影App下载平台(MYSQL下载电影app)
- Android画图并保存图片的具体实现代码