使用Eclipse从Android中的C代码调用Java函数而不调用Java

时间:2018-02-09 13:56:36

标签: java android c eclipse java-native-interface

我想从没有共享库的C代码调用Java函数 并且之前没有调用某些Java函数。

我知道如何调用我的Java函数,但我需要获得Env和JavaVM,而我真的不知道如何得到它。我不能使用JNI_CreateJavaVMJNI_OnLoad因为我在Android上工作。我正在使用android-ndk-r13b来构建C代码。

我正在使用Eclipse Juno。

我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

在我看来,您可以使用的最佳方法是在Java代码中使用RESTful API,因此您的C代码可以通过JSON请求/响应访问该函数。如果您解释为什么需要C中的代码,将会有所帮助.C代码是在单独的项目中还是由Java代码生成?

答案 1 :(得分:0)

根据我对NDK的使用,你可以从android调用JNI_OnLoad函数。从那里你可以使用静态方法或实例对象调用你想要的任何类。

        if(!AccessPermission.getPermmission(this)){

            AccessPermission.setOnPermmissionResult(new OnPermmissionResult() {

                @Override
                public void OnPermmission(boolean access, String[] permissions,
                        int[] grantResults) {

    if(access)init();
                }
            });
        }else init();