在未经验证的Android 4.0.1 Galaxy Nexus上使用Netty 3.5.6。试图在设备上运行Netty服务器。我有我的清单。
服务器绑定代码:
rtspSA= new InetSocketAddress(InetAddress.getLocalHost(),544);
Channel rtspChannel = bootstrap.bind(rtspSA);
allChannels.add(rtspChannel);
我收到两个错误:
E/dalvikvm( 8884): Could not find class 'java.util.concurrent.LinkedTransferQueue', referenced from method org.jboss.netty.util.intenal.QueueFactory.createQueue
和
E/NettyServer( 8884): org.jboss.netty.channel.ChannelException: Failed to bind to: localhost/127.0.0.1:544
E/NettyServer( 8884): Caused by: java.net.BindException: bind failed: EACCES (Permission denied)
通过Stackoverflow阅读它听起来像第一个修复:Netty 3.4.1.Final does not work on Android
第二个问题可能是权限问题,但我无法推断出我缺少哪个权限。
有什么建议吗?
答案 0 :(得分:0)
我和你有同样的问题,在这里找到了部分解决方案: https://github.com/netty/netty/issues/272
这一部分:
You can now disable it via a system property.
3.x:
-Dorg.jboss.netty.tryUnsafe=false
4.x
-Dio.netty.tryUnsafe=false
By default it will try to use Unsafe.
我被包括在内
System.setproperty(new property(" _ but I'm not sure what goes in here _"))
关于我的代码,但我仍然不确定它是否有效,可能是错误的字符串或与之相关:
It also can help if you have a custom ClassLoader in place or try to run in a non oracle/sun jdk.
这是一个让它发挥作用的方向,但我不确定如何继续,如果有人有这个拼图的下一部分将非常感激。