MegaX Shirur
MegaX Shirur

Reputation: 1

Exception of failed to invoke method

Its an app-to-app calling android app Earlier i had some problems with the code and also few exceptions,now it is fine ,but facing one last exception. For call activity of the app, Here is my code

public class CallActivity extends AppCompatActivity  {
private com.sinch.android.rtc.calling.Call call;
private TextView callState;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.call);
    TextView callState = (TextView) findViewById(R.id.callState);
    Intent intent = getIntent();
    String callerId = intent.getStringExtra("callerId");
    final String recipientId = intent.getStringExtra("recipientId");
    final SinchClient sinchClient = Sinch.getSinchClientBuilder()
            .context(this)
            .userId(""+callerId)
            .applicationKey("c6a1ec06-3f48-4e2d-980c-021ea6d2c8ca")
            .applicationSecret("pH2/AwzRJkmFS2M3kQ1XcA==")
            .environmentHost("sandbox.sinch.com")
            .build();
    sinchClient.setSupportCalling(true);
    sinchClient.startListeningOnActiveConnection();
    sinchClient.start();
    sinchClient.getCallClient().addCallClientListener(new SinchCallClientListener());
    button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            call.addCallListener(new SinchCallListener());
            if (call == null) {
                call = sinchClient.getCallClient().callUser(recipientId);
                button.setText("Hang Up");
            } else {
                call.hangup();

            } // make a call!
        }
    });
}
private class SinchCallListener implements CallListener {

    @Override
    public void onCallProgressing(com.sinch.android.rtc.calling.Call progressingCall) {
        callState.setText("ringing");
    }

    @Override
    public void onCallEstablished(com.sinch.android.rtc.calling.Call establishedCall) {
        callState.setText("connected");
        setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
    }

    @Override
    public void onCallEnded(com.sinch.android.rtc.calling.Call endedCall) {
        callState.setText("");
        call = null;
        button.setText("Call");
        setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
    }

    @Override
    public void onShouldSendPushNotification(com.sinch.android.rtc.calling.Call call, List<PushPair>pushPairs) {

    }
}

private class SinchCallClientListener implements com.sinch.android.rtc.calling.CallClientListener {
    @Override
    public void onIncomingCall(com.sinch.android.rtc.calling.CallClient callClient, com.sinch.android.rtc.calling.Call incomingCall) {
        call = incomingCall;
        call.answer();
        call.addCallListener(new SinchCallListener());
        button.setText("Hang Up");
    }
}

}

The logcat says:

03-24 20:45:49.789 25058-25058/com.example.abhinav123.sinch2 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.abhinav123.sinch2, PID: 25058
                                                                           Theme: themes:{}
                                                                           java.lang.NullPointerException: Attempt to invoke interface method 'void com.sinch.android.rtc.calling.Call.addCallListener(com.sinch.android.rtc.calling.CallListener)' on a null object reference
                                                                               at com.example.abhinav123.sinch2.CallActivity$1.onClick(CallActivity.java:49)
                                                                               at android.view.View.performClick(View.java:5204)
                                                                               at android.view.View$PerformClick.run(View.java:21158)
                                                                               at android.os.Handler.handleCallback(Handler.java:739)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5461)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

49th line is: call.addCallListener(new SinchCallListener());

please help..

Upvotes: 0

Views: 1004

Answers (1)

Rohit Arya
Rohit Arya

Reputation: 6791

You have just declared call here: private com.sinch.android.rtc.calling.Call call;

But you haven't initialized it, before using it.

Upvotes: 1

Related Questions