相关疑难解决方法(0)

使用JNI将数据类型从Java传递到C(反之亦然)

使用JNI我们可以将自定义数据类型从Java传递到C(反之亦然)吗?我看到原始数据类型到C中的类型的映射,但是我们不能确定是否可以发送我们自己的数据类型(例如发送或返回一个Employee对象或其他东西!).

c java java-native-interface

31
推荐指数
1
解决办法
3万
查看次数

如何将JNI C#类传递给Java或处理这种情况?

我试图从C#调用Java方法,它从java中调用如下:

EgamePay.pay(thisActivity, payAlias, new EgamePayListener() {
            @Override
            public void paySuccess(String alias) {
            }

            @Override
            public void payFailed(String alias, int errorInt) {
            }

            @Override
            public void payCancel(String alias) {
            }
        });
Run Code Online (Sandbox Code Playgroud)

前两个参数都可以,但是如何在C#中传递EgamePayListner?简单地创建具有相同功能的C#类将无法正常工作......

这是我目前正在做的事情:

using (AndroidJavaClass jc = new AndroidJavaClass("cn.egame.terminal.smspay.EgamePay"))
        {
            System.IntPtr cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
            System.IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
            object[] p = { fid_Activity, "payAlias", new EgamePayListener() };
            jc.CallStatic("pay", p);
        }

..

 class EgamePayListener
    {
        public void paySucess(string alias)
        {
        }

        public void payFailed(string alians, int errorInt)
        {
        }

        public …
Run Code Online (Sandbox Code Playgroud)

c# java java-native-interface unity-game-engine

12
推荐指数
1
解决办法
3531
查看次数

如何将java类实例作为参数传递给JNI方法?

我想将java类对象传递给JNI方法,我想在JNI方法中调用几个方法,如下所示.

有没有人有像下面这样的例子?

class JavaClassParameter{
    void javaMethodTobeCalledInJNI(){
        ...java source...
    }
}

class MainJavaClass{
    void somemethod(){
        JavaClassParameter object = new JavaClassParameter();
        JNIMethod(object);
    }

    native void JNIMethod(JavaClassParameter object);
}


// C++ code
void JNIMethod(object){
    object->javaMethodTobeCalledInJNI();
}
Run Code Online (Sandbox Code Playgroud)

android-ndk

11
推荐指数
1
解决办法
1万
查看次数