I'm working with android 3.0 drag-n-drop framework. All works fine.
But after 30 actions application causes IllegalArgumentException.
09-12 11:17:32.282: WARN/Surface(31132): Not initializing the
shared buffer client because token = -12
09-12 11:17:32.282: ERROR/View(31132): Unable to initiate drag
09-12 11:17:32.282: ERROR/View(31132):
java.lang.IllegalArgumentException
09-12 11:17:32.282: ERROR/View(31132): at
android.view.Surface.lockCanvasNative(Native Method)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.Surface.lockCanvas(Surface.java:350)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.View.startDrag(View.java:11467)
09-12 11:17:32.282: ERROR/View(31132): at
com.example.drag.drop.Dot$1.onTouch(Dot.java:70)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.View.dispatchTouchEvent(View.java:4605)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:
1560)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:
1560)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:
1560)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:
1560)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:
1560)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1291)
09-12 11:17:32.282: ERROR/View(31132): at
com.android.internal.policy.impl.PhoneWindow
$DecorView.superDispatchTouchEvent(PhoneWindow.java:1709)
09-12 11:17:32.282: ERROR/View(31132): at
com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:
1264)
09-12 11:17:32.282: ERROR/View(31132): at
android.app.Activity.dispatchTouchEvent(Activity.java:2315)
09-12 11:17:32.282: ERROR/View(31132): at
com.android.internal.policy.impl.PhoneWindow
$DecorView.dispatchTouchEvent(PhoneWindow.java:1682)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.View.dispatchPointerEvent(View.java:4677)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2392)
09-12 11:17:32.282: ERROR/View(31132): at
android.view.ViewRoot.handleMessage(ViewRoot.java:2054)
09-12 11:17:32.282: ERROR/View(31132): at
android.os.Handler.dispatchMessage(Handler.java:99)
09-12 11:17:32.282: ERROR/View(31132): at
android.os.Looper.loop(Looper.java:132)
09-12 11:17:32.282: ERROR/View(31132): at
android.app.ActivityThread.main(ActivityThread.java:4123)
09-12 11:17:32.282: ERROR/View(31132): at
java.lang.reflect.Method.invokeNative(Native Method)
09-12 11:17:32.282: ERROR/View(31132): at
java.lang.reflect.Method.invoke(Method.java:491)
09-12 11:17:32.282: ERROR/View(31132): at
com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-12 11:17:32.282: ERROR/View(31132): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-12 11:17:32.282: ERROR/View(31132): at
dalvik.system.NativeStart.main(Native Method)
09-12 11:17:34.272: WARN/WindowManager(4050): Drag already in
progress
09-12 11:17:34.622: WARN/WindowManager(4050): Drag already in
progress
09-12 11:17:34.912: WARN/WindowManager(4050): Drag already in
progress
09-12 11:17:35.462: WARN/WindowManager(4050): Drag already in
progress
09-12 11:17:35.782: WARN/WindowManager(4050): Drag already in
progress
09-12 11:17:37.282: ERROR/WindowManager(4050): Unregister of
nonexistent drag input channel
Application again works fine after dalvinkvm calls for each DragEvent
09-12 11:18:06.662: WARN/Surface(31132): Surface.finalize() has
work. You should have called release() (1720472, 0)
As you can see time delay between exception and finalization is
approximately 30 sec.
Same exception occurs on two example projects from books:
1)
http://www.manning.com/collins/; example on chapter 15:
http://www.manning-sandbox.com/thread.jspa?messageID=117809&tstart=0
2)
http://www.apress.com/9781430232223; example on chapter 31
Question:
1)How finalize DragEvents properly?
or
2)How call Surface.finalize() if I'm working with GridView for
example?
Thanks.