【发布时间】:2016-12-02 14:22:57
【问题描述】:
我有一个具有以下功能的库 .jar:
public void doAction(ArrayList<String[][]> list, int[] time) { }
我已经创建了一个绑定项目,并且 api.xml 有这个代码:
<method abstract="false" deprecated="not deprecated" final="false" name="doAction" native="false" return="void" static="false" synchronized="false" visibility="public">
<parameter name="p0" type="java.util.ArrayList<java.lang.String[][]>">
</parameter>
<parameter name="p1" type="int[]">
</parameter>
</method>
我在我的 android 项目中添加了绑定 dll 的引用并探索了我看到的 dll:
using Android.Runtime;
using System;
using System.Collections.Generic;
[Register ("doAction", "(Ljava/util/ArrayList;[I)V", "GetDoAction_Ljava_util_ArrayList_arrayIHandler")]
public virtual void DoAction (IList<string[][]> p0, int[] p1);
用法:
var myList = new List<string [] []> ();
var myCmd = new string [5] [];
int [] exeTime = new int [100];
myCmd = new string [5] [];
myCmd [0] = new string [] { "F", "2" };
myCmd [1] = new string [] { "A", "2" };
myCmd [2] = new string [] { "P", "0" };
myCmd [3] = new string [] { "V", "5" };
myCmd [4] = new string [] { "E", "1" };
myList.Add (myCmd);
exeTime [0] = 10;
mLib.DoAction (myList, exeTime);
所以出现以下错误: mono.android.runtime.JavaObject 无法转换为 java.lang.String[][]
怎么了?
谢谢
【问题讨论】: