无法在Android 4.0设备上启动Netty服务器

时间:2012-05-31 15:45:10

标签: android netty

在未经验证的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

第二个问题可能是权限问题,但我无法推断出我缺少哪个权限。

有什么建议吗?

1 个答案:

答案 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.

这是一个让它发挥作用的方向,但我不确定如何继续,如果有人有这个拼图的下一部分将非常感激。