Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Android应用程序中从c调用Java代码大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_197_4@ 我目前正在尝试使用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

大佬总结

以上是大佬教程为你收集整理的在Android应用程序中从c调用Java代码全部内容,希望文章能够帮你解决在Android应用程序中从c调用Java代码所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。