【问题标题】:Jeromq on android : No virtual method clear()Ljava/nio/ByteBufferandroid 上的 Jeromq:没有虚拟方法 clear()Ljava/nio/ByteBuffer
【发布时间】:2019-10-17 23:08:04
【问题描述】:

我正在尝试将 jeromq 用于 android 项目。我需要连接到另一个经销商设备。这是我的代码:

ZContext zcontext = new ZContext(1);
ZMQ.Socket zsocket = zcontext.createSocket(ZMQ.DEALER);
String identity = "S61_phone";
zsocket.setIdentity(identity.getBytes(ZMQ.CHARSET));
zsocket.connect("tcp://my_other_device_ip_and_port_here");
zsocket.send("test",0);

在连接调用时,发生错误:

2019-09-26 16:59:53.033 18347-18379/? E/Android运行时:致命 例外:线程 4 进程:com.flir.flironeexampleapplication,PID:18347 java.lang.NoSuchMethodError:没有虚拟方法 clear()Ljava/nio/ByteBuffer;在类 Ljava/nio/ByteBuffer 中;或其超类('java.nio.ByteBuffer' 的声明出现在 /system/framework/core-oj.jar 中) 在 zmq.Signaler.send(Signaler.java:97) 在 zmq.Mailbox.send(Mailbox.java:71) 在 zmq.Ctx.sendCommand(Ctx.java:517) 在 zmq.ZObject.sendCommand(ZObject.java:382) 在 zmq.ZObject.sendPlug(ZObject.java:185) 在 zmq.ZObject.sendPlug(ZObject.java:175) 在 zmq.Own.launchChild(Own.java:115) 在 zmq.SocketBase.addEndpoint(SocketBase.java:590) 在 zmq.SocketBase.connect(SocketBase.java:582) 在 org.zeromq.ZMQ$Socket.connect(ZMQ.java:2531) 在 com.flir.flironeexampleapplication.GLPreviewActivity.onDeviceConnected(GLPreviewActivity.java:115) 在 com.flir.flironesdk.EmbeddedDevice$4.run(EmbeddedDevice.java:512) 在 java.lang.Thread.run(Thread.java:764)

我的环境:

  • jeromq 0.5.2
  • 执行代码的目标设备是 Android 8.1 (Oreo)
  • 使用 JDK 1.8.0_66 / ndk r10e 在 Android Studio 中编译

知道问题出在哪里吗?非常感谢。

【问题讨论】:

  • 您的安装有问题。该方法肯定存在。

标签: java android zeromq jeromq


【解决方案1】:

我找到了解释和解决方法here

Java 9 为驱动程序使用的 java.nio.ByteBuffer 中的以下方法引入了具有协变返回类型的覆盖方法。

  • 位置
  • 限制
  • 翻转
  • 清除

在 Java 9 中,它们现在都返回一个 ByteBuffer ,而它们覆盖的方法返回 Buffer,导致在 Java 8 及更低版本上执行时出现这样的异常。

这是因为生成的字节码包含方法的静态返回类型,>在 Java 8 及更低版本中找不到,因为具有协变的重载方法>返回类型不存在。

解决方法是在调用方法之前将 ByteBuffer 实例强制转换为 Buffer。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-06
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2018-06-11
    • 1970-01-01
    • 2018-12-17
    相关资源
    最近更新 更多