gpt4 book ai didi

java - Android 工具链上没有可链接的 JNI 库

转载 作者:行者123 更新时间:2023-12-02 12:38:25 25 4
gpt4 key购买 nike

Android 工具链中似乎有“jni.h” header ,但没有可链接的库。

有人可以指导我如何在应用程序中从 C 代码调用 Java 函数吗?

最佳答案

Android 不导出 JNI 库。这意味着系统中无法从用户空间 C 代码调用 JNI_CreateJavaVM() 及其同类。您可以创建自己的 JVM,但它不会是同一个 Java,并且无法访问 Android SDK 类和方法。

在 Android 中,Zigote 进程是使用特殊的 JVM(Dalvik 或 ART)启动的,然后 Java 可以加载您的 C 代码(以 .so 文件的形式),反之亦然。

您的 C 代码可以使用标准 JNI 技术,例如 CallVoidMethod() 及其类似技术来调用 Java 方法。请注意,Android SDK Java 方法通常需要一些“句柄”(例如 context)来完成其工作;通常,您必须依赖从 Java 到 C 的一些调用来为您提供这些句柄。

关于java - Android 工具链上没有可链接的 JNI 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45039241/

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