java.lang.IllegalArgumentException及at android.view.Surface.nativeUnlockCanvasAndPost(Native Method)
2016-10-16 16:53
1341 查看
android控制器异常:
10-16 16:16:03.872: E/AndroidRuntime(1685): FATAL EXCEPTION: Thread-1090
10-16 16:16:03.872: E/AndroidRuntime(1685): java.lang.IllegalArgumentException
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.Surface.nativeUnlockCanvasAndPost(Native Method)
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.Surface.unlockCanvasAndPost(Surface.java:467)
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.SurfaceView$4.unlockCanvasAndPost(SurfaceView.java:940)
10-16 16:16:03.872: E/AndroidRuntime(1685): at zbhx.config.PaintVedio.run(PaintVedio.java:104)
10-16 16:16:03.872: E/AndroidRuntime(1685):
at java.lang.Thread.run(Thread.java:838)
如何出现:
在使用画布绘制动画特效的时候点击手机菜单键盘back键会报以上异常。
异常解释:
当点击back按钮时Activity退出视野时,并不会出现画面更新情况,也没有通知线程停止更新动画的命令([b]flag
= false)[/b],因此更新动画的线程仍然在工作(flag = true)。由于Activity已退出,解锁画布操作holder.unlockCanvasAndPost(canvas)不能完成,因此就会引发上述异常。
解决方法:
1.在public void onBackPressed() {}函数中加上结束线程标记即flag= false;
2.在解锁画布的操作加上一个try catch操作。例如:
10-16 16:16:03.872: E/AndroidRuntime(1685): FATAL EXCEPTION: Thread-1090
10-16 16:16:03.872: E/AndroidRuntime(1685): java.lang.IllegalArgumentException
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.Surface.nativeUnlockCanvasAndPost(Native Method)
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.Surface.unlockCanvasAndPost(Surface.java:467)
10-16 16:16:03.872: E/AndroidRuntime(1685): at android.view.SurfaceView$4.unlockCanvasAndPost(SurfaceView.java:940)
10-16 16:16:03.872: E/AndroidRuntime(1685): at zbhx.config.PaintVedio.run(PaintVedio.java:104)
10-16 16:16:03.872: E/AndroidRuntime(1685):
at java.lang.Thread.run(Thread.java:838)
如何出现:
在使用画布绘制动画特效的时候点击手机菜单键盘back键会报以上异常。
异常解释:
当点击back按钮时Activity退出视野时,并不会出现画面更新情况,也没有通知线程停止更新动画的命令([b]flag
= false)[/b],因此更新动画的线程仍然在工作(flag = true)。由于Activity已退出,解锁画布操作holder.unlockCanvasAndPost(canvas)不能完成,因此就会引发上述异常。
解决方法:
1.在public void onBackPressed() {}函数中加上结束线程标记即flag= false;
2.在解锁画布的操作加上一个try catch操作。例如:
try{ if (holder != null) { holder.unlockCanvasAndPost(canvas); } }catch(Exception e){ e.printStackTrace(); }
相关文章推荐
- at android.view.Surface.unlockCanvasAndPost(Native Method)
- java.lang.illegalargumentexception view android.widget.listview is not a sliding drawer
- java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView
- Android OpenGL ES "java.lang.IllegalArgumentException: Must use a native order direct Buffe"
- Android 错误信息java.lang.IllegalArgumentException: Illegal character in query at index xxx:
- 使用android OpenGL时出现的java.lang.IllegalArgumentException: Must use a native order direct Buffer错误问题解决
- 【遇见Android bug】java.lang.IllegalArgumentException: contentView required: pkg=com.sinvideo.joyshow id
- Android中运行OpenGL工程出错:java.lang.IllegalArgumentException: Must use a native order direct Buffer
- java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{4380
- java.lang.IllegalArgumentException: AppIndex: The URI scheme must be 'android-app' and follow the fo
- [Android] java.lang.IllegalArgumentException: Illegal character in query at index 57
- Caused by: java.lang.IllegalArgumentException: Receiver not registered: android.widget.ViewFlipper
- Android java.lang.IllegalArgumentException: parameter must be a descendant of this view
- 关于dialog引起的java.lang.IllegalArgumentException:View=com.android.internal.policy.impl.PhoneWindow$Deco
- Android使用ViewPager导致java.lang.IllegalArgumentException: The observer is null.
- [Android] View.setTag(key,Object) (java.lang.IllegalArgumentException: The key must be an application-specific resource id.)
- [Android]Android中运行OpenGL工程出错:java.lang.IllegalArgumentException: Must use a native order direct Buffer
- java.lang.IllegalArgumentException: View=com.android.in...
- 关于dialog引起的java.lang.IllegalArgumentException:View=com.android.internal.policy.impl.Ph
- Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting ')' at character position 11