Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用回调的Gomobile android_Android_Go_Android Ndk_Gomobile - Fatal编程技术网

使用回调的Gomobile android

使用回调的Gomobile android,android,go,android-ndk,gomobile,Android,Go,Android Ndk,Gomobile,我有一个使用go mobile编写的库,它应该只有一个回调,但在尝试实现它时,我得到了另外两个方法 @Override public Seq.Ref ref() { return null; } @Override public void call(int i, Seq seq, Seq seq1) {} 问题是,哪种方法是实现go-on Android活动回调的正确方法 现在我有下一个: public class MainActivity extends Activity impl

我有一个使用go mobile编写的库,它应该只有一个回调,但在尝试实现它时,我得到了另外两个方法

@Override
public Seq.Ref ref() {
    return null;
}

@Override
public void call(int i, Seq seq, Seq seq1) {}
问题是,哪种方法是实现go-on Android活动回调的正确方法

现在我有下一个:

public class MainActivity extends Activity implements implements Mobile.Callback {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_register);
          Mobile.Client client = Mobile.New("192.168.2.1", 9000, this);
          try {
             client.Connect();
          } catch (Exception e) {
             e.printStackTrace();
          }
    }

    @Override
    public void OnMessage(String s) {
       Log.e("GO", s);
    }

    @Override
    public Seq.Ref ref() {
       return null;
    }

    @Override
    public void call(int i, Seq seq, Seq seq1) {

    }
}
已成功建立连接,但在回调到“活动i”时获得:

panic: runtime error: invalid memory address or nil pointer dereference

如果有人能帮忙,我将非常感激。

您绑定的Go源代码是什么?(软件包移动和回调接口)

要传递实现Go接口类型的Java类,请参阅


基本上,生成的Java接口类型并不打算直接使用。相反,Java类应该扩展生成的Java接口的存根类。

绑定的Go源代码是什么?(软件包移动和回调接口)

要传递实现Go接口类型的Java类,请参阅


基本上,生成的Java接口类型并不打算直接使用。相反,Java类应该扩展生成的Java接口的存根类。

对于android,使用
Mobile.Callback.Stub
而不是
Mobile.Callback

...
Mobile.Client client = Mobile.New("192.168.2.1", 9000,  new Callbacks());

...
class Callbacks extends Mobile.Callback.Stub {
        @Override
        public void OnMessage(String s) {
        ....
        }
}

对于android,使用
Mobile.Callback.Stub
而不是
Mobile.Callback

...
Mobile.Client client = Mobile.New("192.168.2.1", 9000,  new Callbacks());

...
class Callbacks extends Mobile.Callback.Stub {
        @Override
        public void OnMessage(String s) {
        ....
        }
}