Android studio:UnsatisfiedLinkError:findLibrary 返回 null - 加载本机库

2023-11-24

我正在 Android Studio 中制作一个使用两个库的应用程序。带有 Android 包装器和 jar 库的本机库。 由于某种原因,如果将其他 jar 库编译到项目中,则本机库将不会加载。因此,如果我仅使用本机库运行应用程序,则一切正常。我将另一个 jar 库添加到我的 gradle 文件中,然后出现 UnsatisfiedLinkError:

java.lang.UnsatisfiedLinkError: Couldn't load MobileOcrEngine from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.app-1, /vendor/lib, /system/lib]]]: findLibrary returned null

当我使用这个时,我的应用程序运行良好:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
    compile 'com.android.support:support-v13:21.0.2'
    compile project(':wheel')
}

当我尝试时出现错误:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
    compile 'com.android.support:support-v13:21.0.2'
    compile project(':wheel')
    compile files('libs/realm-0.78.0.jar')
}

或者当我尝试使用相同的库但使用 Maven 存储库时:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
    compile 'com.android.support:support-v13:21.0.2'
    compile project(':wheel')
    compile 'io.realm:realm-android:0.78.0'
}

或者如果我尝试将 jar 放在 jniLibs 文件夹中:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'src/main/jniLibs')
    compile 'com.android.support:support-v13:21.0.2'
    compile project(':wheel')
}

我不知道问题的根源在哪里。使用两个库之一,Android Studio 还是我做错了什么?

Note:我知道 StackOverflow 上有很多关于 UnsatisfiedLinkErrors 的问题,但这些问题都没有为我的问题提供解决方案。如果它是我使用的唯一库,那么加载本机库没有问题......


我发现了问题。我想添加的另一个 jar 在内部使用一个 C++ 库,支持armeabi, armeabi-v7a, x86 and mips。我一直使用的本机库仅受支持armeabi.

我用于测试的设备是armeabi-v7a设备。当我使用本机库时,设备一直在我的 libs 目录的armeabi-v7a 中检查该库。如果在那里找不到它,它会尝试armeabi 目录。

当我加载支持 4 种不同架构的其他 jar 时,设备会加载armeabi-v7a 库。当它找到该 jar 的armeabi-v7a 库时,它将尝试加载相同架构的本机库。如果没有找到该库,它不会检查armeabi目录作为备份,因此findLibrary返回 null,因此UnsatisfiedLinkError.

我通过为armeabi架构创建一个目录并将armeabi-v7a目录的.so-library复制到其中来解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android studio:UnsatisfiedLinkError:findLibrary 返回 null - 加载本机库 的相关文章

  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • (Ionic 2)尝试回退到 Cordova-lib 执行时发生错误:TypeError:无法读取未定义的属性“then”

    Edit 使用 ionic 2 时会发生这种情况 我知道它还不稳定 但我认为可能有一些解决方案 因为其他人似乎没有遇到这个问题 Edit end 由于某种原因 我在尝试使用 ionic build android 和 ionic build
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 在 Android 中使用 DataOutputStream 在 POST 正文中发送特殊字符 (ë ä ï)

    我目前正在开发一个具有大量服务器端通信的 Android 应用程序 昨天 我收到一份错误报告 称用户无法发送 简单 特殊字符 例如 我搜索过但没有找到任何有用的东西 可能重复 没有答案 https stackoverflow com que
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • 从 Firebase 数据库填充微调器

    public class MainActivity extends AppCompatActivity DatabaseReference reference Spinner areaSpinner ArrayList
  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • Flutter 深度链接

    据Flutter官方介绍深层链接页面 https flutter dev docs development ui navigation deep linking 我们不需要任何插件或本机 Android iOS 代码来处理深层链接 但它并没
  • MediaCodec 创建输入表面

    我想使用 MediaCodec 将 Surface 编码为 H 264 使用 API 18 有一种方法可以通过调用 createInputSurface 然后在该表面上绘图来对表面中的内容进行编码 我在 createInputSurface
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框
  • 无法将 admob 与 firebase iOS/Android 项目链接

    我有两个帐户 A 和 B A 是在 Firebase 上托管 iOS Android unity 手机游戏的主帐户 B 用于将 admob 集成到 iOS Android 手机游戏中 我在尝试将 admob 分析链接到 Firebase 项

随机推荐

  • 验证错误:捆绑包包含不允许的嵌套捆绑包

    作为后续我的另一个问题 我在提交 iOS 8 应用程序 包括共享扩展和框架目标 时仍然遇到问题 在尝试提交时 我收到上述错误消息 其他有我问题的人 如前面链接的问题中指出的 也有同样的问题 但以与我的案例无关的方式解决了它 该错误消息暗示我
  • 调用“Class.forName”时未选中强制转换警告

    我的代码如下 package com foo public class TestComposition public static void main String args try Class
  • 在选择选项上绑定点击事件

    我在制作时遇到问题clickHTML 上的事件option元素工作 即使是一个简单的console log hello 行不通的 我正在尝试这样做 mySelect option bind click function console lo
  • 如何列出模块中的所有函数?

    我的系统上安装了一个 Python 模块 我希望能够查看其中有哪些可用的函数 类 方法 我想打电话给help作用在每一个上 在 Ruby 中我可以做类似的事情ClassName methods获取该类上所有可用方法的列表 Python中有类
  • EnableSessionState = ReadOnly - 可能的副作用?

    我们有一个相当大的基于 Web 的解决方案 在 Net 4 5 上运行 最近 当我们检查一个性能问题时 系统似乎在任何给定时间 每个客户端 只服务一个请求 我们了解到造成这种情况的原因是会话状态 通过将 EnableSessionState
  • Android 应用在 Google Play 上自动更新和权限更改

    我知道 当至少添加一项新权限时 该应用程序将不会自动更新 用户必须手动更新它 当应用程序的权限发生更改时 您将可以 手动更新 删除权限怎么样 我当前的应用程序N版发行了 在下一个版本中 删除了一项权限 用户是否会N版获得自动更新 Edit
  • 如何在groovy中检索嵌套属性

    我想知道在 Groovy 中检索嵌套属性的最佳方法是什么 采用给定的对象和任意 属性 字符串 我想要这样的事情 someGroovyObject getProperty property1 property2 我很难找到其他人想要这样做的例
  • Toast.show() 未在模拟器中显示消息

    这似乎适用于 Android 6 Marshmallow 设备小米红米 3S 看起来像是模拟器问题 但在任何其他意义上它并不是真正的行为不当 我是Android开发的初学者 了解不多 我已经确认我的应用程序的通知已打开 眼镜 API 级别
  • 如何在 Pandas 中连接包含列表(系列)的两列

    我想连接 pandas 中的两列 每列由 1x4 元素的浮点列表组成 我想合并两列 使输出为 1x8 的向量 下面显示了数据框的片段 ue bs 1 27932459e 01 7 83234197e 02 3 24789420e 02 4
  • 使用 XSL 对 XML 文件进行哈希处理

    我正在尝试找到一种方法来 散列 XML 文件的内容 其根源是需要比较传入的一些文本节点与我希望确保校验和相同的文本节点 传入的文本节点已从表单提交返回 我需要确保它们没有更改 在合理范围内 排除冲突 建筑很糟糕 所以请不要问它 我被锁定在给
  • 如何将div垂直换行然后水平换行

    我需要水平显示我的网站中的搜索结果数据 我的网站遵循 Metro UI 方法 因此我希望数据水平流动而不是垂直流动 我的要求如下图所示 结果数据是动态的 我想首先根据父 div 高度垂直绘制 div 然后水平绘制 类似于WPF包裹面板的东西
  • 如何使用Spring表达式语言获取作业ID?

    我想使用 spring 表达语言获取工作 ID 我试过 jobExecutionContext jobId 但它不起作用 单独使用 SpEL 无法访问作业 ID 您可以使用 JobExecutionListener 将其添加到executi
  • System.currentTimeMillis() 如何获取时间

    是方法吗System currentTimeMillis 是否实现对底层操作系统进行系统调用以接收当前时间 我之所以这么问 是因为据我所知 该方法运行得相当快 只需要 6 个 CPU 时钟 但这没有意义 因为众所周知系统调用很慢 我在这里缺
  • 如何在 Android 上进行异步 URL 连接?

    我正在使用以下类连接到我的网络服务 我想让这个异步 我怎样才能做到这一点 package org stocktwits helper import java io BufferedReader import java io IOExcept
  • tmux 绑定分号

    有什么办法可以绑定吗 059 到 tmux 中的命令 默认绑定到last pane 但是 我想将其重新绑定到 select pane R 我尝试将以下内容放入我的 tmux conf 中 但似乎都不起作用 bind 059 select p
  • 在 Html.BeginForm() 中使用 DELETE 表单方法?

    我想尽可能使用适当的 HTTP 方法 在这种情况下 当单击按钮删除某些内容时 我想使用属性触发控制器操作 HttpDelete 但是 我似乎无法使用此方法创建表单 使用 Razor 语法 这FormMethod枚举没有选项Delete并且执
  • 如何在Makefile中添加#define?

    我有一个 C 项目 我需要在一些 CXX 文件中定义一个变量 我有近 800 个文件 我需要为其中 200 个文件定义一个变量 所以我想在 makefile 中定义它 那么我们怎样才能做到这一点呢 只需添加 Dxxx yy在命令行上 xxx
  • 在AppDelegate.m中获取屏幕当前显示的UIViewController

    目前的UIViewController屏幕上的应用程序需要通过设置一些徽章视图来响应来自 APN 的推送通知 但我怎样才能得到UIViewController在方法中application didReceiveRemoteNotificat
  • 每次点击取消按钮时,搜索栏都会向下跳一行

    我已经实现了一个 UISearchBar 来搜索来自外部 API 的项目目录 搜索功能按预期工作 但问题是 每次我按下搜索栏文本字段右侧的取消按钮时 整个搜索栏都会向下移动一行 看起来就像推动了整个搜索栏一样 表格视图也向下 因此 如果我在
  • Android studio:UnsatisfiedLinkError:findLibrary 返回 null - 加载本机库

    我正在 Android Studio 中制作一个使用两个库的应用程序 带有 Android 包装器和 jar 库的本机库 由于某种原因 如果将其他 jar 库编译到项目中 则本机库将不会加载 因此 如果我仅使用本机库运行应用程序 则一切正常