我想在没有共享库的情况下从 C 代码调用 Java 函数 并且之前没有调用某些 Java 函数。
我知道如何调用我的 Java 函数,但我需要获取 Env 和 JavaVM,但我真的不知道如何获取它。我无法使用 JNI_CreateJavaVM
或 JNI_OnLoad
因为我在 android 上工作。我正在使用 android-ndk-r13b
构建 C 代码。
我正在使用 Eclipse Juno。
我该如何解决这个问题?
最佳答案
从我对NDK的使用来看,你可以从android调用JNI_OnLoad函数。从那里您可以使用静态方法或通过实例对象调用任何您想要的类。
jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
JNIEnv* env;
if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) {
return -1;
}
return JNI_VERSION_1_6;
}
关于java - 使用 Eclipse 从 Android 中的 C 代码调用 Java 函数,而不调用 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48707531/