gpt4 book ai didi

android-ndk - Android 中的 JNI_CreateJavaVM()

转载 作者:行者123 更新时间:2023-12-02 03:58:19 24 4
gpt4 key购买 nike

有两种方法可以让 Android 原生 C/C++ 调用 Java 代码。

  • Java 应用程序首先调用 native 函数。 native 函数保存 JavaVM 和 JNIEnv,然后使用它们调用 Java 代码,例如 Java 类 X。
  • native 函数调用相同的 Java 类 X。在这种情况下,我们需要一个 JVM 来运行 Java 代码。 JNI_CreateJavaVM() 可用于执行此操作。

  • 我发现以上 2 种方式创建的 JVM 是不同的。

    这是 Java 类 X。
    public class X
    {
    public X()
    {
    Log.d("X", "X()");
    }
    }

    Log.d() 可以通过方式 1 成功运行。但是,在方式 2 中,我从 logcat 收到以下错误消息:
    “未找到 native Landroid/util/Log;.println_native(IILjava/lang/String;java/lang/String;)I 的实现”

    我认为从 JNI_CreateJavaVM() 获得的 JNIEnv 遗漏了一些东西。如果我必须使用方式2,我该如何解决问题?

    最佳答案

    也许 com.android.internal.util.WithFramework 中的代码可以帮助你。
    请参阅我的类似问题 here

    关于android-ndk - Android 中的 JNI_CreateJavaVM(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602852/

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