模拟器上的 SIP 错误

Sip Error on Emulator

你好实际上我正在尝试创建一个与 Sip 和 Asterisk 通信一起工作的应用程序但是当我试图 运行 我的设备上的这个应用程序它工作正常但是如果它尝试使用 Android Emulator 它告诉我一个错误 请帮助我解决这个错误

    public class MainActivity extends Activity {
    public SipProfile me = null;
    public SipProfile.Builder builder = null;
    public SipManager mSipManager = null;
    public String sipaddress = null;
    public String username = "17772146242101";
    public String domain = "callcentric.com";
    public String password = "Gjmurugan2!";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button b1 = (Button) findViewById(R.id.button1);
        if (mSipManager == null) {
            mSipManager = SipManager.newInstance(getApplicationContext());
        }

    }
        public void Register(View v)
        {
            try {
                builder = new SipProfile.Builder(username, domain);
                builder.setPassword(password);
                me = builder.build();
            } catch (ParseException e) {

                e.printStackTrace();
            }
              Intent intent=new Intent();
                intent.setAction("android.sipexample.INCOMING_CALL");
                PendingIntent pi=PendingIntent.getBroadcast(getApplicationContext(), 0, intent, Intent.FILL_IN_DATA);
                try {
                    mSipManager.open(me, pi, null);
                } catch (SipException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            try {
                mSipManager.setRegistrationListener(me.getUriString(), new SipRegistrationListener() {

                    public void onRegistering(String arg0) {
                        Log.d("Success", "Registering with SIP Server...");
                    }

                    public void onRegistrationDone(String arg0, long arg1) {
                        Log.d("Connection Ready", "Ready For Communication");
                    }

                    public void onRegistrationFailed(String arg0, int arg2, String arg1) {
                        Log.d("Error Code", Integer.toString(arg2));
                        Log.d("Error Message", arg1);
                    }
                });
            } catch (SipException e) {
                // TODO: handle exception
                e.printStackTrace();

            }
        }
        // closeLocalProfile();

    private void closeLocalProfile() {
        // TODO Auto-generated method stub
        if (mSipManager == null) {
            return;
        }
        try {
            if (me != null) {
                mSipManager.close(me.getUriString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.sipreg.MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView1"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="147dp"
    android:onClick="Register"
    android:text="Register-Sip" />

</RelativeLayout>

我的错误来了 Logcat

01-05 23:58:43.997: D/AndroidRuntime(1069): Shutting down VM
01-05 23:58:43.997: W/dalvikvm(1069): threadid=1: thread exiting with    uncaught exception (group=0xb4a27ba8)
01-05 23:58:44.017: E/AndroidRuntime(1069): FATAL EXCEPTION: main
01-05 23:58:44.017: E/AndroidRuntime(1069): Process: com.example.sipreg,   PID: 1069
01-05 23:58:44.017: E/AndroidRuntime(1069): java.lang.IllegalStateException:  Could not execute method of the activity
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.view.View.onClick(View.java:3823)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.view.View.performClick(View.java:4438)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.view.View$PerformClick.run(View.java:18422)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.os.Handler.handleCallback(Handler.java:733)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.os.Handler.dispatchMessage(Handler.java:95)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.os.Looper.loop(Looper.java:136)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.app.ActivityThread.main(ActivityThread.java:5001)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at java.lang.reflect.Method.invoke(Method.java:515)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at dalvik.system.NativeStart.main(Native Method)
01-05 23:58:44.017: E/AndroidRuntime(1069): Caused by: java.lang.reflect.InvocationTargetException
01-05 23:58:44.017: E/AndroidRuntime(1069):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at java.lang.reflect.Method.invoke(Method.java:515)
01-05 23:58:44.017: E/AndroidRuntime(1069):     at android.view.View.onClick(View.java:3818)
01-05 23:58:44.017: E/AndroidRuntime(1069):     ... 11 more
01-05 23:58:44.017: E/AndroidRuntime(1069): Caused by: java.lang.NullPointerException
01-05 23:58:44.017: E/AndroidRuntime(1069):     at com.example.sipreg.MainActivity.Register(MainActivity.java:52)
01-05 23:58:44.017: E/AndroidRuntime(1069):     ... 14 more
01-05 23:58:45.777: I/Process(1069): Sending signal. PID: 1069 SIG: 9

有些模拟器不支持 SIP,即使支持 API。

因此,SipManager.newInstance 可能 return 为空:请先检查一下!

旁注:如果我们清楚地知道您的 MainActivity.java 文件中的第 52 行是什么,将会有所帮助!