gpt4 book ai didi

java - 是否需要为所有 native 方法提供实现?

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:54 26 4
gpt4 key购买 nike

无法通过对“java 未实现的 native 方法”和问题标题的快速谷歌搜索找到它。一些消息来源说您必须提供一个实现,但随后他们继续调用他们已经实现的函数,因此他们需要一个单独的实现是合乎逻辑的。

我的问题的背景略有不同。

我有一个 Java 库,我想在 Windows、Unix 和 Android 上使用。我有用于实现 native 库的 JNI。对于 android,这个库带有专门的日志记录。此功能仅适用于 android,不适用于 windows/unix。如果我不调用日志函数,我可以声明一个 public static native void log() 函数而不提供实现吗?

这将允许我为 windows、unix 和 android 提供相同的库。无论如何,没有人会在 windows/unix 上调用 android 日志功能。


TL;DR: 我有一个包含方法 public static native void a()public static native void b() 的类.如果我打算在平台 A、B 和 C 上调用 a(),并且只打算在平台 C 上调用 b(),我是否必须为b() 在平台 A 和 B 上?

最佳答案

不需要提供实现。您甚至不需要为未实现的方法编译头文件。

但是,正常情况下,如果您调用该函数,您将得到一个 java.lang.UnsatisfiedLinkError

关于java - 是否需要为所有 native 方法提供实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com