java.lang.IllegalArgumentException:at android.view.Surface.unlockCanvasAndPost(Native Method)

我已经搜索了这个问题两天了。 我知道这是由一些愚蠢的错误引起的,但我无法找到那个东西。 如果有人帮助我,那会很棒。 这是片段

private void draw() { final SurfaceHolder holder = getSurfaceHolder(); Canvas c = holder.lockCanvas();; try { update(c); updateText(c); //These are the effects like snowing or bouncing } finally { if (c != null) holder.unlockCanvasAndPost(c); //This is line no. 151 } mHandler.removeCallbacks(drawRunner); if (mVisible) { mHandler.postDelayed(drawRunner, 10); } } 

我认为问题在于上述方法。 这是logcat:

  11-18 11:29:15.145: E/AndroidRuntime(2845): java.lang.IllegalArgumentException 11-18 11:29:15.145: E/AndroidRuntime(2845): at android.view.Surface.unlockCanvasAndPost(Native Method) 11-18 11:29:15.145: E/AndroidRuntime(2845): at com.android.internal.view.BaseSurfaceHolder.unlockCanvasAndPost(BaseSurfaceHolder.java:215) 11-18 11:29:15.145: E/AndroidRuntime(2845): at com.example.livewallpaper.SnowEffect$MyBounce.draw(SnowEffect.java:151) 11-18 11:29:15.145: E/AndroidRuntime(2845): at com.example.livewallpaper.SnowEffect$MyBounce.access$0(SnowEffect.java:141) 11-18 11:29:15.145: E/AndroidRuntime(2845): at com.example.livewallpaper.SnowEffect$MyBounce$1.run(SnowEffect.java:55) 

找出问题所在。

如果有人遇到同样的问题,这就是解决方案,这是一个非常愚蠢的错误。 更新清单文件。

      

别忘了添加android:exported="true" 我实际上错过了!