3

SIPアプリケーションを開発しています。SipDemoのSipDemoサンプルを使用しましたが、問題があります。NullPointerException=>"マネージャーを閉じようとしたときにエラーが発生しました。" この場所で(例外'e'):

public void initiateCall() {

    updateStatus(sipAddress);

    try {
        SipAudioCall.Listener listener = new SipAudioCall.Listener() {

            @Override
            public void onCallEstablished(SipAudioCall call) {
                call.startAudio();
                call.setSpeakerMode(true);
                call.toggleMute();
                updateStatus(call);
            }

            @Override
            public void onCallEnded(SipAudioCall call) {
                updateStatus("Ready.");
            }
        };

        call = manager.makeAudioCall(me.getUriString(), sipAddress, listener, 30);

    }
    catch (Exception e) {
        Log.i("WalkieTalkieActivity/InitiateCall", "Error when trying to close manager.", e);
        if (me != null) {
            try {
                manager.close(me.getUriString());
            } catch (Exception ee) {
                Log.i("WalkieTalkieActivity/InitiateCall",
                        "Error when trying to close manager.", ee);
                ee.printStackTrace();
            }
        }
        if (call != null) {
            call.close();
        }
    }
}

SipManager.isApiSupported()さらに、私はこれを チェックし、両方ともfalseSipManager.isVoipSupported()を返しました。私はこれを4.0.3OSのTabでテストしています。障害がネイティブSIPをサポートしていないのではないかと思いましたが、SipDroidまたは市場の別のアプリで簡単に電話をかけることができます。

Logcat スタックトレースを編集します。

05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247): Error when trying to close manager.
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247): java.lang.NullPointerException
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at com.example.android.sip.WalkieTalkieActivity.initiateCall(WalkieTalkieActivity.java:212)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at com.example.android.sip.WalkieTalkieActivity$4.onClick(WalkieTalkieActivity.java:324)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:165)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at android.os.Looper.loop(Looper.java:130)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at android.app.ActivityThread.main(ActivityThread.java:3691)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at java.lang.reflect.Method.invokeNative(Native Method)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at java.lang.reflect.Method.invoke(Method.java:507)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
05-15 22:29:11.255: INFO/WalkieTalkieActivity/InitiateCall(4247):     at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

2

私はいくつかの解決策を持っていると思います。Androidのすべてのバージョンがsipをサポートしているわけではありません。したがって、第3部のライブラリを探す必要があります。たとえば、SipdroidまたはCSipSimpleのソースコードを確認して、必要に応じて変換することができます。

于 2012-09-27T07:46:07.517 に答える