从Unity3D C#脚本中在AAR中调用具有多个参数的方法

问题描述 投票:0回答:1

我有一个使用以下方法的课程:

public static int add( int a, int b ){
    return a + b;
}

而且我正尝试从Unity脚本中使用

来调用它
var ajc = new AndroidJavaClass( "com.mil.rfcommunitylib.BluetoothClassic" );
int result = ajc.CallStatic<int,int>( "add", new int[] { 1, 2 } );

但我知道

AndroidJavaException:java.lang.NoSuchMethodError在我的logcat。

怎么了?使用不带参数的方法,因此我们可以假设我正确设置了所有内容。

java android unity3d aar
1个回答
1
投票

而不是呼叫:

var ajc = new AndroidJavaClass( "com.mil.rfcommunitylib.BluetoothClassic" );
int result = ajc.CallStatic<int,int>( "add", new int[] { 1, 2 } );

您应该实际使用:

var ajc = new AndroidJavaClass( "com.mil.rfcommunitylib.BluetoothClassic" );
int result = ajc.CallStatic<int>( "add", 1, 2 );

[如果您仔细阅读文档:link,您会发现在您的情况下,函数将返回int,因此应为javaClass.CallStatic<int>(functionName, params ...),并在函数名称之后传递该函数接受为单独参数的参数。函数,而不是相同参数类型的数组。

© www.soinside.com 2019 - 2024. All rights reserved.