gpt4 book ai didi

android - 如何从 Unity 发送值并在 Java 中为我的插件接收值?

转载 作者:行者123 更新时间:2023-11-30 04:12:30 26 4
gpt4 key购买 nike

我想为我的 android 插件将数据从 Unity 发送到 java。

这是我的 Unity 代码:

AndroidJNI.AttachCurrentThread();
IntPtr cls_Activity = AndroidJNI.FindClass("com/unity3d/player/UnityPlayer");
IntPtr fid_Activity = AndroidJNI.GetStaticFieldID(cls_Activity, "currentActivity", "Landroid/app/Activity;");
IntPtr obj_Activity = AndroidJNI.GetStaticObjectField(cls_Activity, fid_Activity);
Debug.Log("Setup Objects Complete");

IntPtr cls_OurAppNameActivityClass = AndroidJNI.FindClass("org/plugin/test/AdmobTestActivity");

IntPtr startAdsMethod = AndroidJNI.GetMethodID(cls_OurAppNameActivityClass, "EnableAds", "(J)V");
Debug.Log("before If Loop");

if (AndroidJNI.IsInstanceOf(obj_Activity, cls_OurAppNameActivityClass) != false)
{
//Debug.Log("Activity IS a OurAppNameActivity");
jvalue[] myArray = new jvalue[1];
myArray[0] = new jvalue();
myArray[0].i = 12;
AndroidJNI.CallVoidMethod(obj_Activity, startAdsMethod, myArray);

Debug.Log("Activity Leaving a OurAppNameActivity");
}

这是我的 Java 代码:

public void EnableAds(int qwe)
{
Log.i(APP_TAG, "Value" + qwe);
}

错误:

05-16 13:11:30.906: W/dalvikvm(12315): threadid=8: thread exiting with uncaught exception (group=0x40018578)
05-16 13:11:30.921: E/AndroidRuntime(12315): FATAL EXCEPTION: GLThread 9
05-16 13:11:30.921: E/AndroidRuntime(12315): java.lang.NoSuchMethodError: EnableAds
05-16 13:11:30.921: E/AndroidRuntime(12315): at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
05-16 13:11:30.921: E/AndroidRuntime(12315): at com.unity3d.player.UnityPlayer.onDrawFrame(Unknown Source)
05-16 13:11:30.921: E/AndroidRuntime(12315): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1368)
05-16 13:11:30.921: E/AndroidRuntime(12315): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1123)

并强制关闭..

如果我在我的 java 代码中从 EnableAdv(int qwe) 中删除 int 参数,这个应用程序工作正常..

谁能告诉我,我在这段代码中遗漏了什么?

最佳答案

我找到了答案..

我想使用“(J)V”作为我的参数类型..但我应该使用“(I)V”而不是这个。

例如Java方法:

long f (int n, String s, int[] arr);具有以下类型签名:

"(ILjava/lang/String;[I)V

引用this进一步阅读

关于android - 如何从 Unity 发送值并在 Java 中为我的插件接收值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10614119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com