이 문제에 대해 2 일간 검색했습니다. 나는 이것이 바보 같은 실수에 의한 것이라고 알고 있지만, 나는 그것을 발견 할 수 없다. 누군가 도움이된다면 좋을 것입니다. 스 니펫입니다.java.lang.IllegalArgumentException : android.view.Surface.unlockCanvasAndPost (기본 메서드)
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()가 무엇입니까? – Sonali8890
당신이 배경 화면을 그릴 표면을 제공하는 inbuilt 메서드입니다. – Wizard