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

2019-10-08 20:20:14 +08:00
 gramyang
这是一个简单的测试,前端 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 来序列化消息
858 次点击
所在节点    Java
5 条回复
securityCoding
2019-10-08 20:46:05 +08:00
NoSuchMethodException

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

想了半天 Method 的中文描述应该是成员函数。。一时没想起来
xiiix
2019-10-09 10:36:19 +08:00
是不是 android q?
gramyang
2019-10-09 11:44:58 +08:00
@xiiix 版本是 28

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/607191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX