안드로이드 개발 질문/답변
(글 수 45,052)
Remote Service를 만들어서 안드로이드에 올리고 해당 서비스를 다른 App.에서 바인딩하여 데이터를 주고 받으려하는데,
Remote Service에서 만든 인터페이스를 다른 App.에서 사용할 수 없다는 오류가 발생합니다.
어떻게하면 다른 패키지와 인터페이스 정의를 공유하여 사용할 수 있을까요?
12-24 14:35:00.823: ERROR/dalvikvm(1557): Could not find method android.felix.service.IRemoteInterface$Stub.asInterface, referenced from method android.felix.sample.AndroidFelix$1.onServiceConnected
12-24 14:35:00.833: ERROR/AndroidRuntime(1557): Uncaught handler: thread main exiting due to uncaught exception
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): java.lang.VerifyError: android.felix.sample.AndroidFelix$1
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.felix.sample.AndroidFelix.<init>(AndroidFelix.java:112)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.Class.newInstanceImpl(Native Method)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.Class.newInstance(Class.java:1472)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.os.Looper.loop(Looper.java:123)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.main(ActivityThread.java:4203)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.reflect.Method.invokeNative(Native Method)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.reflect.Method.invoke(Method.java:521)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at dalvik.system.NativeStart.main(Native Method)
안드로이드 버전은 1.6입니다.
Remote Service에서 만든 인터페이스를 다른 App.에서 사용할 수 없다는 오류가 발생합니다.
어떻게하면 다른 패키지와 인터페이스 정의를 공유하여 사용할 수 있을까요?
12-24 14:35:00.823: ERROR/dalvikvm(1557): Could not find method android.felix.service.IRemoteInterface$Stub.asInterface, referenced from method android.felix.sample.AndroidFelix$1.onServiceConnected
12-24 14:35:00.833: ERROR/AndroidRuntime(1557): Uncaught handler: thread main exiting due to uncaught exception
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): java.lang.VerifyError: android.felix.sample.AndroidFelix$1
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.felix.sample.AndroidFelix.<init>(AndroidFelix.java:112)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.Class.newInstanceImpl(Native Method)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.Class.newInstance(Class.java:1472)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.os.Handler.dispatchMessage(Handler.java:99)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.os.Looper.loop(Looper.java:123)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at android.app.ActivityThread.main(ActivityThread.java:4203)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.reflect.Method.invokeNative(Native Method)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at java.lang.reflect.Method.invoke(Method.java:521)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
12-24 14:35:00.923: ERROR/AndroidRuntime(1557): at dalvik.system.NativeStart.main(Native Method)
안드로이드 버전은 1.6입니다.
2009.12.28 17:37:35
똑같은 aidl을 카피해서 실행하면 "Binder invocation to an incorrect interface"..... Exception 이 발생합니다.
12-28 17:35:22.166: ERROR/AndroidRuntime(763): java.lang.SecurityException: Binder invocation to an incorrect interface
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Parcel.readException(Parcel.java:1218)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Parcel.readException(Parcel.java:1206)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.felix.sample.IRemoteInterface$Stub$Proxy.getFelixParcel(IRemoteInterface.java:91)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.felix.sample.AndroidFelix$1.onServiceConnected(AndroidFelix.java:126)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread$PackageInfo$ServiceDispatcher.doConnected(ActivityThread.java:1053)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread$PackageInfo$ServiceDispatcher$RunConnection.run(ActivityThread.java:1070)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Handler.handleCallback(Handler.java:587)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Handler.dispatchMessage(Handler.java:92)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Looper.loop(Looper.java:123)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread.main(ActivityThread.java:4203)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at java.lang.reflect.Method.invokeNative(Native Method)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at java.lang.reflect.Method.invoke(Method.java:521)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at dalvik.system.NativeStart.main(Native Method)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): java.lang.SecurityException: Binder invocation to an incorrect interface
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Parcel.readException(Parcel.java:1218)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Parcel.readException(Parcel.java:1206)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.felix.sample.IRemoteInterface$Stub$Proxy.getFelixParcel(IRemoteInterface.java:91)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.felix.sample.AndroidFelix$1.onServiceConnected(AndroidFelix.java:126)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread$PackageInfo$ServiceDispatcher.doConnected(ActivityThread.java:1053)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread$PackageInfo$ServiceDispatcher$RunConnection.run(ActivityThread.java:1070)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Handler.handleCallback(Handler.java:587)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Handler.dispatchMessage(Handler.java:92)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.os.Looper.loop(Looper.java:123)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at android.app.ActivityThread.main(ActivityThread.java:4203)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at java.lang.reflect.Method.invokeNative(Native Method)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at java.lang.reflect.Method.invoke(Method.java:521)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
12-28 17:35:22.166: ERROR/AndroidRuntime(763): at dalvik.system.NativeStart.main(Native Method)