OnServiceConnected not getting called, getting null pointer exception

I have developed the linked service as a separate project and I am trying to access the service from the client, but I somehow get

AndroidRuntime: FATAL EXCEPTION: main
08-08 12:00:40.898  3206  3206 E AndroidRuntime: java.lang.NullPointerException
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at    com.test.binder.BinderServiceActivity.onClick(BinderServiceActivity.java:61)
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at android.view.View.performClick(View.java:3526)
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at android.view.View$PerformClick.run(View.java:14139)
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:605)
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:92)
08-08 12:00:40.898  3206  3206 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:137)

      

08-08 12: 00: 40.898 3206 3206 E AndroidRuntime: at android.app.ActivityThread.main (ActivityThread.java:4725) 08-08 12: 00: 40.898 3206 3206 E AndroidRuntime: at java.lang.reflect.Method. invokeNative (native method)

I suspect onServiceConnected is not getting called. Can someone help me solve this.

Thanks Advance,

Enter your client code below:

public class BinderServiceActivity extends Activity implements OnClickListener {
private static final String TAG = "LogActivity";
ILogService logService;
LogConnection conn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// Request bind to the service
conn = new LogConnection(); // 
Intent intent = new Intent("com.test.binder.ILogService"); // 
intent.putExtra("version", "1.0"); // 
bindService(intent, conn, Context.BIND_AUTO_CREATE); // 

// Attach listener to button
((Button) findViewById(R.id.button1)).setOnClickListener(this);
}

class LogConnection implements ServiceConnection { // 

public void onServiceConnected(ComponentName name, IBinder service) { // 
  logService = ILogService.Stub.asInterface(service); // 
  Log.i(TAG, "connected");
}

public void onServiceDisconnected(ComponentName name) { // 
  logService = null;
  Log.i(TAG, "disconnected");
}

}

public void onClick(View button) {
try {

  logService.log_d("LogClient", "Hello from onClick()"); // 
  Message msg = new Message(Parcel.obtain()); // 
  msg.setTag("LogClient");
  msg.setText("Hello from inClick() version 1.1");
  logService.log(msg); // 
} catch (RemoteException e) { // 
  Log.e(TAG, "onClick failed", e);
}

}

@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroyed");

unbindService(conn); // 

logService = null;
}
}

      

+1


source to share


1 answer


Since you haven't posted the full source including Service, it would be difficult to rip out your problem. You can download Demo Source

for each type of service binding with an example and get a brief information. The demo contains binding to a service using three types.



1.) Linking using IBinder

2.) Linking with Messenger

3.) Binding using AIDL

+1


source







All Articles