【问题标题】:java.lang.IllegalArgumentException:at android.view.Surface.unlockCanvasAndPost(Native Method)java.lang.IllegalArgumentException:在 android.view.Surface.unlockCanvasAndPost(本机方法)
【发布时间】:2014-11-18 06:07:26
【问题描述】:

我已经搜索了两天这个问题。我知道这是由一些愚蠢的错误引起的,但我找不到那个东西。如果有人帮助我,那就太好了。这里是sn-p

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)

【问题讨论】:

  • 第二行的 getSurfaceHolder() 是什么?
  • 它是一种内置方法,可为您提供要在其上绘制壁纸的表面。

标签: java android illegalargumentexception surfaceholder


【解决方案1】:

找出问题所在。

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

<activity
      android:name="com.yourpackage.Prefs"
      android:exported="true" >
      <intent-filter>
           <category android:name="android.intent.category.PREFERENCE" />
      </intent-filter>
</activity>

别忘了添加android:exported="true"。我真的错过了!

【讨论】:

  • 非常感谢您,先生!你把我从精神病院救了出来。
  • 快乐是我的。
  • @PM25793 请帮忙。我的清单已经有这一行 android:exported="true"。但是,我仍然得到这个异常。我该怎么办?
  • 检查你的代码两次 :) 你会缺少一些东西。
猜你喜欢
  • 2014-05-06
  • 2016-10-12
  • 2018-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 2014-07-30
  • 1970-01-01
相关资源
最近更新 更多