마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

AIDL 하다가 에러부분 질문드립니다.

0 추천

mainActivity

public class MainActivity extends AppCompatActivity {

    private static final String SERVER_PACKAGE = "lite.bluelight.jdk.com.aidlservice";

    private static final String SERVER_ACTION = "lite.bluelight.jdk.com.aidlservice";

    private IRemoteService mRemoteService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent serviceIntent = new Intent(SERVER_ACTION);
        serviceIntent.setPackage(SERVER_PACKAGE);
        getApplication().bindService(serviceIntent, serviceConnection, Context.BIND_AUTO_CREATE);
        startService(serviceIntent);

        Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    int sum = mRemoteService.sum(2, 5);
                    Toast.makeText(getApplicationContext(), String.valueOf(sum), Toast.LENGTH_SHORT).show();
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unbindService(serviceConnection);
    }

    public ServiceConnection serviceConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            Log.e("DDDD", "Service has unexpectedly onServiceConnected");
            mRemoteService = IRemoteService.Stub.asInterface(service);
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            Log.e("DDDD", "Service has unexpectedly onServiceDisconnected");
            mRemoteService = null;
        }
    };
}

 

ServerService.java

public class ServerService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        return new IRemoteServiceImpl();
    }

    private class IRemoteServiceImpl extends IRemoteService.Stub {

        @Override
        public int sum(int a, int b) throws RemoteException {
            Log.e("DDDD", "DDDDDDDDDDDDDDDDD");
            return a + b;
        }

    }
}

 

 FATAL EXCEPTION: main
                                                                                  Process: lite.bluelight.jdk.com.aidlservice, PID: 3397
                                                                                  java.lang.NullPointerException: Attempt to invoke interface method 'int lite.bluelight.jdk.com.aidl.IRemoteService.sum(int, int)' on a null object reference
                                                                                      at lite.bluelight.jdk.com.aidlservice.MainActivity$1.onClick(MainActivity.java:41)
 

에러는 이렇게 나옵니다..

답변 부탁드립니다.

 

 

 

 

 

 

 

왕초보미 (160 포인트) 님이 2017년 8월 10일 질문

1개의 답변

0 추천
mRemoteService 이 null 이네요

http://darphin.tistory.com/29
aucd29 (218,390 포인트) 님이 2017년 8월 11일 답변
AIDL callback붙여도 에러가 비슷합니다 부탁드려요..
...