尝试在onServiceConnected()中实例化Messenger时出现NullPointerException

时间:2016-04-16 18:27:42

标签: android wear-os

尝试在我的活动和服务之间启动信使时遇到问题。在我的活动中,我有这个:

Messenger bluetoothServiceMessenger;
private ServiceConnection bluetoothServiceConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            bluetoothServiceMessenger = new Messenger(service);
... }

如您所见,我正在尝试使用IBinder创建信使。在我的服务上,onBind()方法就是这个:

@Nullable
    @Override
    public IBinder onBind(Intent intent) {
        Log.d(TAG, "BluetoothService has been started.");
        return bluetoothServiceBinder;
    }
public class BluetoothServiceBinder extends Binder {
        public BluetoothService getService() {
            return BluetoothService.this;
        }
    }

所以,问题是我在onServiceConnected()方法上遇到以下NullPointerException:

04-16 20:15:32.365 2117-2117/com.alejandro_castilla.heartratetest E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                    Process: com.alejandro_castilla.heartratetest, PID: 2117
                                                                                    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
                                                                                        at android.os.Binder.queryLocalInterface(Binder.java:254)
                                                                                        at android.os.IMessenger$Stub.asInterface(IMessenger.java:27)
                                                                                        at android.os.Messenger.<init>(Messenger.java:146)
                                                                                        at com.alejandro_castilla.heartratetest.MainActivity$1.onServiceConnected(MainActivity.java:129)
                                                                                        at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1223)
                                                                                        at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1240)
                                                                                        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:5422)
                                                                                        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)

我一直在尝试一些事情但没有任何作用。如果我不这样做,我可以确认该服务是否正常工作,所以我认为这不是绑定问题。任何帮助将不胜感激。

提前致谢。

0 个答案:

没有答案