[英]Calling Java code from c++ in an Android application
我目前正在嘗試使用JNI在Android應用程序中從C ++調用一些Java代碼。 但是,當我嘗試使用“ JNI_CreateJavaVM”方法創建Java虛擬機時,無法編譯任何內容。 它帶有錯誤:“對“ JNI_CreateJavaVM”的未定義引用”
它已在jni.h頭文件中明確聲明,並且我能夠使用在頭文件中進行的類型和結構定義而不會出錯,因此代碼肯定包括它。 當我嘗試使用JNI_CreateJavaVM時,它只是無法編譯。 是否還有其他需要包含的東西,或者是否有其他使虛擬機從C ++調用Java的方法?
這是我嘗試使用的代碼:
#include "HelloWorldScene.h"
#include <stdio.h>
#include <jni.h>
#include <string.h>
bool HelloWorld::init()
{
JavaVM* jvm;
JNIEnv* env;
JavaVMInitArgs args;
jint result = JNI_CreateJavaVM(&jvm, &env, (void*)&args);//The code compiles if this line is commented out.
//...Various initialization procedures
return true;
}
那是一個鏈接器錯誤,而不是編譯錯誤。 您需要鏈接到JVM庫。
假設您正在使用GCC,那將是這樣的:
-L/path/to/java/jre/lib/<arch>/<server or client> -ljvm
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.