簡體   English   中英

在Android應用程序中從C ++調用Java代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM