Android NDK 创建可执行文件但未将其推送到设备上 (Eclipse)

Posted

技术标签:

【中文标题】Android NDK 创建可执行文件但未将其推送到设备上 (Eclipse)【英文标题】:Android NDK creating executable but not pushing it on the device (Eclipse) 【发布时间】:2015-12-11 16:48:59 【问题描述】:

您好,我在 Eclipse (Windows) 上使用 android NDK 编译 C 程序(我的 Android 应用程序需要)。 该文件已编译并在我的 Android 项目的 libs/armeabi 文件夹中创建可执行文件,但是当我在设备上运行该应用程序时,没有任何痕迹。

可执行文件很好,事实上如果我将它重命名为 libmyapp.so 它会正确推送到设备上的 /data/data/myapp/lib。

谢谢。

【问题讨论】:

“没有任何痕迹”是什么意思?您知道它应该在 APK 中。您的 NDK 调用失败还是有效? 我也不会长期使用 Eclipse。尽快迁移到 Android Studio。 NDK 需要一些设置,但您需要的所有帮助都在这里,例如:***.com/a/30641567/360211 NDK 调用成功,可执行文件已创建但未推送到设备上。例如,如果我选择 BUILD_SHARED_LIBRARY 而不是 BUILD_EXECUTABLE,那么 libmyapp.so 文件不仅会在我的项目的 libs/armeabi 中创建,而且还会推送到设备上的 /data/data/myapp/lib 文件夹中。 您应该创建一个 .so 库并从 java 调用它。不创建可执行文件。 也许您可以解释一下为什么要创建可执行文件而不是库。 【参考方案1】:

如果您构建一个可执行文件,一个命令行工具,您可以将它安装在设备上并确保它在路径中。如果您想自动安装,您有两种选择:

1) 编写一个可在 PC (linux/windows/mac) 上运行的脚本并通过adb 安装您的可执行文件。

2) 编写一个 Android GUI 应用程序,将可执行文件放在它的 assets/ 文件夹中,并让应用程序在第一次启动时解压并安装它。

【讨论】:

以上是关于Android NDK 创建可执行文件但未将其推送到设备上 (Eclipse)的主要内容,如果未能解决你的问题,请参考以下文章

快捷键2:可以抛出呼叫,但未将其标记为“ try”,并且未处理错误

用于本机可执行文件的 Android NDK 分析器不生成数据

NDK编译可执行文件在Android 中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法。(示

转NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办(代

android开发,怎么使用ndk编译成.so文件

推送示例android gcm,已注册设备但未收到推送通知