我有一个使用以下方法的课程:
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。
怎么了?使用不带参数的方法,因此我们可以假设我正确设置了所有内容。
而不是呼叫:
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 ...)
,并在函数名称之后传递该函数接受为单独参数的参数。函数,而不是相同参数类型的数组。