0

ルート化されていないAndroid4.0.1ギャラクシーネクサスでNetty3.5.6を使用する。デバイスでNettyサーバーを実行しようとしています。マニフェストにあります。

サーバーバインドコード:

rtspSA= new InetSocketAddress(InetAddress.getLocalHost(),544);
Channel rtspChannel = bootstrap.bind(rtspSA);
allChannels.add(rtspChannel);

2つのエラーが発生します:

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を読むと、最初のものが修正されたように聞こえました:Netty3.4.1.FinalはAndroidでは機能しません

2番目の問題はおそらくアクセス許可の問題ですが、どのアクセス許可が欠落しているかを推測することはできません。

助言がありますか?

4

1 に答える 1

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.

それはそれを機能させるための方向性ですが、パズルの次のピースを持っている人がいれば、どうやって進めるかはわかりません.

于 2012-06-26T08:09:49.133 に答える