Android NDK - 找不到库无法链接可执行文件 - 如何设置 LD_LIBRARY_PATH?

2023-11-24

我有一个 Android 活动,我正在其中执行 NDK 编译的代码(命令行程序):

Runtime.getRuntime().exec(myCommand);

并加载所需的共享库:

static {
    System.loadLibrary(myLib);
}

但是当运行我的项目并打印错误流的输出时,我收到以下错误:

link_image[1963]:  7520 could not load needed library 'libmyLib.so' for './myCommand'
(load_library[1105]: Library 'libmyLib.so' not found)CANNOT LINK EXECUTABLE

我保证libmyLib.so我的项目中确实存在libs/armeabi/目录并将其复制到我的 Android 设备下/data/data/myProject.path.package/lib/目录。可执行文件和库的所有者和组是system:system并且权限也正常。

当一开始从 adb shell 执行命令时,我得到相同的错误,但随后我可以设置LD_LIBRARY_PATH并且运行正常:

./adb shell
export LD_LIBRARY_PATH=/data/data/myProject.path.package/lib:$LD_LIBRARY_PATH
/data/data/myProject.path.package/myCommand

那么问题来了,如何从java Android 项目中做到这一点?

注意:我在 GT-P1010 上使用 Linux、Eclipse + Sequoyah、NDK-r5b、Android 2.3.6 (API 10)。


已解决:可以使用exec(String prog, String[] envp)。就我而言,这是:

String[] envp = {"LD_LIBRARY_PATH=/data/data/cse.ecg.dcmtk/lib:$LD_LIBRARY_PATH"};
Runtime.getRuntime().exec(myCommand, envp);

现在的问题是exec()执行的进程无法解析主机名(它可以从 adb shell 解析;已设置 Internet 权限)。有什么提示吗?

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

Android NDK - 找不到库无法链接可执行文件 - 如何设置 LD_LIBRARY_PATH? 的相关文章

  • 按下按钮时应用不同的样式

    有没有办法在按下按钮时将样式应用于按钮 如果我有一种风格样式 xml
  • fetchUuidsWithSdp 的奇怪 UUID 逆转

    我有一个在树莓派上运行的 python 蓝牙服务器 使用 PyBluez 我在服务器中使用的uuid是 8f86d132 4ab8 4c15 b8df 0b70cf10ea56 我正在打电话device fetchUuidsWithSdp
  • 如何在 Linux 内核中定义并触发我自己的新软中断?

    我想在 Linux 内核中创建自己的软中断 这是正确的方法吗 In the init我想触发该模块的softirq我将添加一个调用 394 void open softirq int nr void action struct softir
  • 将现有 VARCHAR 列与 Room 结合使用

    我正在尝试将现有的数据库与 Android Room 一起使用 但是 我的一个表有一个 VARCHAR 列 Room 似乎只支持 TEXT 不支持 VARCHAR 而且 sqlite 不允许修改列类型 那么 有没有办法使用Room中现有的带
  • Android WebView里面的ScrollView只滚动scrollview

    在我的应用程序中 我有一个 ScrollView 其中包含一些线性视图 一些文本视图和一个 Webview 然后是其他线性布局等 问题是 WebView 不滚动 Scroll 仅侦听 ScrollView 有什么建议么
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • Android Studio 与本地网络共享上的项目文件

    这是我的设置 Android Studio 项目文件位于 Ubuntu 14 10 盒子上的共享文件夹中 尝试在 Windows 8 机器上运行 Android Studio 1 0 2 并将 U 驱动器映射到包含项目文件的 Ubuntu
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • Android 构建发布失败,原因为:java.lang.ArrayIndexOutOfBoundsException:213(pr​​oguard 问题)

    我的项目使用调试构建变体构建得很好 但使用发布变体 Android Studio 会抛出 引起原因 java lang ArrayIndexOutOfBoundsException 213 可能是什么问题 如果我设置minifyEnable
  • 您使用什么物理 Android 设备进行测试?

    有什么好的推荐用于测试目的的物理 Android 设备吗 我正在苹果阵营寻找像 iPod touch 这样的设备 可以帮助 iOS 开发人员测试他们的东西 我知道有 Nexus One 但那东西相当昂贵 而且我并不真正关心手机的东西 而是可
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所

随机推荐

  • MOV AX,CS 和 MOV DS,AX 的概念

    谁能解释一下这三个指令的功能吗 ORG 1000H MOV AX CS MOV DS AX 理论上我知道代码 数据和额外的段是什么 但是 它们在这个程序中是如何实现的 为什么整个段被移到另一个段中 MOV AX CS and MOV DS
  • 为什么识别 XOR 运算符的反向传播神经网络需要偏置神经元?

    我发布了一个question昨天关于我的 XOR 运算符的反向传播神经网络遇到的问题 我做了更多的工作 意识到这可能与没有偏置神经元有关 我的问题是 偏置神经元的一般作用是什么 它在识别 XOR 运算符的反向传播神经网络中的作用是什么 是否
  • nginx 上游代理的后备

    我在图像服务器集群前面有一个 nginx 实例 upstream img farm 1 server 10 0 1 1 server 10 0 1 2 server 10 0 1 3 server 10 0 1 4 etc location
  • 模块模式-如何将一个模块的代码拆分到不同的js文件中?

    对于模块模式 我正在做类似的事情 function namespace tons of code blabla window myGlobalNamespace 如何拆分代码 我可以想到几种方法 例如使用命名空间的层次结构 或者通过以下方式
  • 对数据帧的成对行进行操作

    我在 R 中有一个数据框 我想对所有行对执行计算 有没有比使用嵌套 for 循环更简单的方法 为了使这一点具体化 考虑一个包含十行的数据框 我想计算所有 45 个可能的对之间的分数差 gt data frame ID 1 10 Score
  • Visual Studio 是否可以默认折叠摘要部分

    Visual Studio 是否可以默认折叠方法和类的摘要部分 或者是否有一个命令可以折叠所有摘要部分而不折叠方法本身 我在下面提供了一个摘要部分的示例 Collapsed example Expanded Example 您将必须使用宏
  • Android 蓝牙 - 无法连接

    我正在开发一个使用蓝牙连接到设备并发送 接收数据的应用程序 我正在使用 Nexus One 手机进行所有测试 我从未能够建立从我的手机到任何设备的 SPP 串行端口 连接 但是 我have能够使用相当于 PuTTY 的 Mac 从设备 我的
  • 如何获得有关 antlr4-maven-plugin 的帮助

    antlr4 maven plugin 似乎不是 Antlr4 网站上的文档 这可能不会给你带来任何好处 就像对我一样 尝试这个 mvn org antlr antlr4 maven plugin help Ddetail true 生产
  • 跨 Java 和 Javascript 模板语言?

    似乎有很多 Java 模板语言 例如 JSP JSTL Freemarker Velocity 等 和 Javascript 模板语言 例如 Mustache Ext 的 XTemplate Jquery 模板等 但是是否有一种模板语言具有
  • 绘制圆锥时断开的曲面

    我想用 python 绘制曲面 z 1 x y 和 4z x y 我写了这段代码 from mpl toolkits mplot3d import axes3d import matplotlib pyplot as plt import
  • 如何在打印从文件读取的行时跳过额外的换行符?

    我正在从 stdin 读取 python 程序的输入 我已将一个文件对象分配给 stdin 输入的行数事先是未知的 有时程序可能只有 1 行 100 行 甚至根本没有行 import sys sys stdin open Input txt
  • 使用自定义键盘中可见的候选视图重新调整 UI

    我正在使用自定义键盘 我在 onCreateCandidatesView 中设置了 setCandidatesViewShown true 函数 问题是 UI 没有正确调整 任何帮助将不胜感激 以下是我所做的 Override public
  • 为什么是 HTML 十进制和 HTML 十六进制?

    我已经尝试在 Google 上搜索很长一段时间来寻找为什么 HTML 实体可以以 HTML 十进制或 HTML 十六进制编译的答案 所以我的问题是 HTML 十进制和 HTML 十六进制有什么区别 为什么有两个系统做同样的事情 最初 HTM
  • HTTP Get:只下载标头? (不支持HEAD)

    在我的代码中 我使用一些 Http Get 请求以流的形式下载一些文件 我使用以下代码 public String getClassName String url throws ClientProtocolException IOExcep
  • 来自 MongoDB ISODate 的 Pandas DatetimeIndex

    我在处理时间 时区时遇到一些困难 我有以下形式的原始 JSON 数据 Date 28 Sep 2009 00 00 00 然后将该数据加载到 MongoDB 中 并将日期的字符串表示形式转换为JavaScript 日期对象 这个转换为UTC
  • 是否可以将新文件写入 iOS 应用程序中的捆绑资源目录?

    是否可以将新文件写入 iOS 应用程序中的捆绑资源目录 不 无法在捆绑目录中写入 因为捆绑目录是使用 SSL 证书签名的代码 并且您无法破坏它 但是你可以轻松地在 iPhone 应用程序的文档目录中写入 您可以使用以下命令获取文档目录路径
  • 将强制转换应用于整数和浮点除法的结果:这里发生了什么?

    我是一个初学者 有些东西对我来说没有多大意义 请好心人解释一下我哪里出错了 如果之前有人问过这个问题 我很抱歉 这里小数点的存在意味着这些是使用浮点除法来计算的 System out println 1 3 0 this prints 0
  • Javascript计时器进度条

    我有定时器功能 有进度条 它工作得很好 但我想制作一个平滑的进度条动画 帧速率为 60 FPS function started duration var TotalSeconds 40 var documentWidth document
  • 如何在 spring-boot 应用程序启动期间创建多个 kafka 主题?

    我有这样的配置 Configuration public class KafkaTopicConfig private final TopicProperties topics public KafkaTopicConfig TopicPr
  • Android NDK - 找不到库无法链接可执行文件 - 如何设置 LD_LIBRARY_PATH?

    我有一个 Android 活动 我正在其中执行 NDK 编译的代码 命令行程序 Runtime getRuntime exec myCommand 并加载所需的共享库 static System loadLibrary myLib 但是当运