java - 创建侦听点时出现 Jain SIP 错误
问题描述
我正在尝试在 Android 中运行 Jain-SIP 示例应用程序,可在此处找到:https ://github.com/usnistgov/jsip/blob/master/src/examples/android/simplecallsetup/Shootist.java
代码尝试在以下行创建侦听点时返回错误
udpListeningPoint = sipStack.createListeningPoint("127.0.0.1", 5060, transport);
代码可以在上面链接的 github 页面上找到。
您知道可能导致错误的原因吗?
github 上给出的 java 示例在 IntelliJ 中运行良好。我为 Jain-SIP 使用以下依赖项:
compile group: 'javax.sip', name: 'android-jain-sip-ri', version: '1.3.0-91'
我正在使用带有 Ubuntu 18.04.2 LTS 的 Android Studio。
我的 MainActivity 类如下
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new Shootist().init();
}
}
整个错误输出如下
07/23 15:30:37: Launching app
$ adb shell am start -n "com.example.jainsiptestapplication/com.example.jainsiptestapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Waiting for process to come online
Connected to process 23998 on device Pixel_2_API_29 [emulator-5554]
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/testapplicatio: JIT profile information will not be recorded: profile file does not exits.
I/chatty: uid=10154(com.example.jainsiptestapplication) identical 10 lines
W/testapplicatio: JIT profile information will not be recorded: profile file does not exits.
I/InstantRun: starting instant run server: is main process
W/testapplicatio: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
W/testapplicatio: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
W/System.err: log4j:WARN No appenders could be found for logger (shootist).
log4j:WARN Please initialize the log4j system properly.
I/System.out: createSipStack android.gov.nist.javax.sip.SipStackImpl@226a293
D/NetworkSecurityConfig: No Network Security Config specified, using platform default
I/System.out: java.net.SocketException: socket failed: EPERM (Operation not permitted)
W/System.err: android.javax.sip.InvalidArgumentException: java.net.SocketException: socket failed: EPERM (Operation not permitted)
at android.gov.nist.javax.sip.SipStackImpl.createListeningPoint(SipStackImpl.java:1677)
at com.example.jainsiptestapplication.Shootist.init(Shootist.java:280)
at com.example.jainsiptestapplication.MainActivity.onCreate(MainActivity.java:13)
at android.app.Activity.performCreate(Activity.java:7783)
at android.app.Activity.performCreate(Activity.java:7772)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3235)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
W/System.err: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Caused by: java.io.IOException: java.net.SocketException: socket failed: EPERM (Operation not permitted)
at android.gov.nist.javax.sip.stack.UDPMessageProcessor.<init>(UDPMessageProcessor.java:169)
at android.gov.nist.javax.sip.stack.OIOMessageProcessorFactory.createMessageProcessor(OIOMessageProcessorFactory.java:46)
at android.gov.nist.javax.sip.stack.SIPTransactionStack.createMessageProcessor(SIPTransactionStack.java:2509)
at android.gov.nist.javax.sip.SipStackImpl.createListeningPoint(SipStackImpl.java:1657)
... 17 more
Caused by: java.net.SocketException: socket failed: EPERM (Operation not permitted)
at libcore.io.IoBridge.socket(IoBridge.java:662)
at java.net.PlainDatagramSocketImpl.datagramSocketCreate(PlainDatagramSocketImpl.java:197)
at java.net.AbstractPlainDatagramSocketImpl.create(AbstractPlainDatagramSocketImpl.java:93)
at java.net.DatagramSocket.createImpl(DatagramSocket.java:357)
at java.net.DatagramSocket.<init>(DatagramSocket.java:259)
at java.net.DatagramSocket.<init>(DatagramSocket.java:319)
W/System.err: at android.gov.nist.core.net.DefaultNetworkLayer.createDatagramSocket(DefaultNetworkLayer.java:98)
at android.gov.nist.javax.sip.stack.UDPMessageProcessor.<init>(UDPMessageProcessor.java:144)
... 20 more
Caused by: android.system.ErrnoException: socket failed: EPERM (Operation not permitted)
at libcore.io.Linux.socket(Native Method)
at libcore.io.ForwardingOs.socket(ForwardingOs.java:217)
at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:370)
at libcore.io.ForwardingOs.socket(ForwardingOs.java:217)
at libcore.io.IoBridge.socket(IoBridge.java:658)
... 27 more
I/System.out: java examples.shootist.Shootist
>>>> is your class path set to the root?
I/testapplicatio: System.exit called, status: 0
I/AndroidRuntime: VM exiting with result code 0, cleanup skipped.
Application terminated.
解决方案
推荐阅读
- sharepoint-online - 使用 PowerAutomate 邀请来宾用户访问 SharePoint 站点
- excel - 验证数组是否包含不在我允许的字符列表中的字符
- python - PIL 保存功能创建太大的图像
- bash - 增加文件中第一行的最后一个数字
- algorithm - 枚举大小为 k 的子集的高效算法
- java - SSLHandshakeException:为什么直到读取套接字才抛出?
- python - 具有二项式回归的 Python 和 R 的不同 GLM 结果
- linux - 我们所有的 PowerShell 脚本都是用 5.1 版本编写的。我们得到了一个只使用 Linux 服务器的新客户端。我们需要重新编写所有脚本吗?
- jboss - 需要压缩每日轮换的 jboss 服务器日志并删除 15 天前的文件
- ms-access - MS Access 链接的共享点表 - 无法更新值