V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gramyang
V2EX  ›  Java

Android 上用 socket 连接 go 后端遇到的奇怪问题

  •  
  •   gramyang · 2019-10-08 20:20:14 +08:00 · 647 次点击
    这是一个创建于 1633 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这是一个简单的测试,前端 android 用 java 的原生 socket 连接 go 后端。
    前端用非 android 环境的 java 客户端连接 go 后端是没有问题的,用 android 端连接 socket 也是没有问题的,就是在发送信息时会出现下面的问题:
    I/AssistStructure: Flattened final assist data: 2444 bytes, containing 1 windows, 9 views
    W/com.gram.test: Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection)
    W/UnsafeUtil: platform method missing - proto runtime falling back to safer methods: java.lang.NoSuchMethodException: copyMemory [class java.lang.Object, long, class java.lang.Object, long, long]
    I/System.out: OkSocket, write bytes: 05 00 00 04 0a 03 66 73 73
    OkSocket, bytes write length:9

    最近梯子也不能用,google 上不去,屑度什么有用的信息也搜不出来。。。。
    求大佬指点

    补充一下:android 使用了 protobuf-java 来序列化消息
    第 1 条附言  ·  2019-10-09 14:46:55 +08:00
    把 protobuf 回退到 3.0.0 版本(很麻烦,必须用 android 的插件来自动编译,不能手动编译)。
    弄完之后还是有问题,但是少了一个警告了:
    I/AssistStructure: Flattened final assist data: 2444 bytes, containing 1 windows, 9 views
    W/com.gram.test: Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection)
    W/System.err: OkSocket, duplex read error,thread is dead with exception:java.net.SocketException: Connection reset
    I/System.out: OkSocket, write bytes: 06 00 00 04 0a 04 67 67 66 66
    OkSocket, bytes write length:10
    I/System.out: OkSocket, mActionHandler is detached.
    W/System.err: OkSocket, duplex write error,thread is dead with exception:java.net.SocketException: Connection reset
    5 条回复    2019-10-09 11:44:58 +08:00
    securityCoding
        1
    securityCoding  
       2019-10-08 20:46:05 +08:00
    NoSuchMethodException

    一般是依赖版本的问题 ,先按照这个思路查
    pursuer
        2
    pursuer  
       2019-10-08 21:41:19 +08:00
    错误很直白,没有这个 Method,哪个类的 Method 缺失了可以看下源码和调用栈, 通常是因为库的版本不一致造成的,例如 Java8 的代码跑在 Java6 的环境中
    看前面的警告代码好像还访问了没有暴露出来的内部,说不定哪一个版本把 field 和谐了就挂了
    pursuer
        3
    pursuer  
       2019-10-08 21:45:37 +08:00
    @pursuer
    漏了几个字
    看前面的警告代码好像还访问了没有暴露出来的内部(变量),说不定哪一个版本把 field 和谐了就挂了

    想了半天 Method 的中文描述应该是成员函数。。一时没想起来
    xiiix
        4
    xiiix  
       2019-10-09 10:36:19 +08:00 via Android
    是不是 android q?
    gramyang
        5
    gramyang  
    OP
       2019-10-09 11:44:58 +08:00
    @xiiix 版本是 28
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4860 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 09:44 · PVG 17:44 · LAX 02:44 · JFK 05:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.