问题标签 [native-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
662 浏览

java - 使用 Java 的 Adob​​e Air 原生进程

Adobe Air Native 进程是否只允许调用运行 java 类的 .exe 文件?

并且不访问java类中的某个方法?

0 投票
0 回答
248 浏览

android - Android flex 应用程序访问本机功能,如电池电量

我有 flex 应用程序,我想在其中访问本机信息,例如电池电量、网络级别和音量级别。而且我的应用程序也应该能够向其他本机应用程序发送意图。有没有像(AIR 扩展)这样的方法,我可以通过它访问它。对此的任何评论都会有所帮助。

0 投票
1 回答
657 浏览

android - 与 android NativeActivity 一起使用的方法列表

有谁知道我在哪里可以找到与 android NativeActivity 一起使用的所有本机 c/c++ 方法和函数的列表。我似乎在 google/android 网站上的任何地方都找不到列表,过去两天我一直在用谷歌搜索它。

0 投票
2 回答
817 浏览

java - UnsatisfiedLinkError java异常当具有native方法的类不在默认包中时

我正在尝试使用 Java 中的默认 Windows 浏览器打开一个 URL。不幸的是,我不能使用 Desktop 类实用程序,因为代码必须与 1.5 兼容。

作为一种解决方案,我使用本机方法调用 ShellExecute:

我将 DLL 文件放在显然包含在 java.library.path 中的 Eclipse 项目根目录中。

如果 ShellExec 在默认包中,一切都可以正常工作,但是如果我将它移动到任何其他包中,本机调用将失败,并显示:

有人知道为什么吗?我正在使用来自http://www.heimetli.ch/shellexec.html的 DLL

谢谢

..稍后编辑:

最终,这个类和其他类将成为 Eclipse RCP 应用程序中的实用程序类,所有外部 DLL 都将放置在 java.library.path 指向的公共 lib 文件夹中。可以看到 DLL,但我得到的错误类型与上面的简单示例相同。

0 投票
0 回答
110 浏览

interop - 通过 out 参数从非托管代码接收字符串

我有一个本机库,它的函数具有以下签名:

我正在尝试从我的托管代码中使用它,如下所示:(从其他代码中盲目复制)

当我收到 AccessViolationException 时,看起来我做错了什么。如何正确申报?

0 投票
1 回答
5181 浏览

java - 使用jna和CreateProcessW时如何获取进程输出

我试图弄清楚如何从我用 CreateProcessW 创建的进程中读取标准输出/错误。我查看了文档,谷歌搜索并搜索了这个列表,但我还没有找到好的指针/样本:)

到目前为止,这是我想出的(它在 Windows 上运行良好,这是我的 java 代码中的相关片段):

那么......我怎样才能从该过程中获取输出?有人已经这样做了并且关心分享样本吗?

感谢大家提前提供任何帮助。

0 投票
2 回答
5214 浏览

java - 在 Glassfish Java EE 应用程序上部署时,在哪里放置 JNI 本机调用的共享库 .so

我有一个运行 Java EE 6 的 Glassfish 3.1.1 Web 应用程序。我的一个类具有本机库依赖项。我正在使用 JNI 来使用这种本机方法。该过程的一部分涉及创建共享库 .so 文件。在我的一个 Java 类中会有一个 System.Loadlibrary("library"); 调用引用该 library.so 文件。

我的问题是,我应该把这个共享库以及它引用的本机代码放在哪里,以便在 Glassfish 上访问和使用这个 JNI 功能。

我需要调用几个 C++ 程序,这些程序可以移动到托管 Glassfish 的机器上的任何位置。我应该把它们放在 domain1/ext 文件夹中吗?将它们作为本机库添加到构建路径中的 jar 中。这是怎么做到的?

0 投票
1 回答
603 浏览

java - 通过 JNA 与 DLL 通信时设置“当前工作目录”

我们使用com.sun.jna包从外部库(DLL)调用方法。该库使用一些支持/缓存数据(DAT 文件),它写入“当前工作目录”中。不幸的是,当我们将文件扩展名与我们的应用程序关联时(在 Windows 中双击打开我们的文件),当前工作目录被设置为正在打开的文件的目录,因此我们的 DLL 将其缓存数据写入到打开的文件。这样,如果我们从 HDD 上的不同位置打开许多文件,我们的 DLL 缓存将遍布整个系统。我们还想控制保存任何缓存/临时/支持数据的地方——我们确实控制了它,除了有问题的 DLL 的缓存。

有什么方法可以让我为这个 DLL 设置“当前工作目录”,同时通过来自的类与它通信com.sun.jna?我可以以某种方式覆盖此设置并将其传递给 JNA 吗?

提前感谢您的任何想法。彼得

0 投票
1 回答
190 浏览

android - Android 原生代码:AMotionEvent_getHistorySize 总是 0?

全部,

我正在为 Android 编写本机应用程序,但我一直在尝试获取运动事件的历史数据。似乎 AMotionEvent_getHistorySize() 总是返回 0,但是如果我查询 X 和 YI 的第 0 个元素似乎得到了有效数据(当前 X 和 Y)。

那么有什么方法可以获取历史数据,或者它只是简单的损坏..?

感谢您的帮助!

0 投票
2 回答
6879 浏览

android - 如何在 Unity 应用程序和常规 Android 应用程序之间进行通信?

我是一名 Android 开发人员,正在与 Unity 开发人员合作。我们的目标是以某种方式创建一个“桥梁”通信,以便在我的 Android 后台服务/线程与 Unity 导出的游戏之间发送消息(两者都在同一设备上运行......)

目前,我们发现实现此类通信的唯一解决方案是直接通过基于 localhost 在两个应用程序之间打开 TCP 套接字。

我也知道应该有可能以某种方式在 Unity 中创建可以从我的 Android 应用程序访问的本机 C 函数,但我还没有找到任何关于如何做到这一点的好的解释。

有没有办法开发 Unity 游戏以某种方式公开 Android API?除了我提到的解决方案之外,还有其他方法可以创建这种通信吗?