2012-11-30 1 views
0

여러 개의 WebView을 사용하여 콘텐츠를 표시하는 앱이 있습니다. 하나를 세로로 스크롤 할 때 스크롤을 멈추고 완전히 멈추기 전에 다른 스크롤을 사용하여 예외가 발생합니다. 스택의 첫 번째 줄은 나에게 가장 혼란 스럽다. 나는 VelocityTracker이 무엇인지, 또는 다른 변수들이 무엇을 언급하는지 모른다.여러 개의 WebView를 스크롤 할 때 onTouch 예외가 발생했습니다.

11-30 10:47:04.740: E/webview(2199): Got null mVelocityTracker when mPreventDefault = 0 mDeferTouchProcess = false mTouchMode = 3 
11-30 10:50:23.771: D/AndroidRuntime(2199): Shutting down VM 
11-30 10:50:23.771: W/dalvikvm(2199): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
11-30 10:50:23.795: E/AndroidRuntime(2199): FATAL EXCEPTION: main 
11-30 10:50:23.795: E/AndroidRuntime(2199): java.lang.NullPointerException 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.webkit.WebView.onTouchEvent(WebView.java:5283) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.View.dispatchTouchEvent(View.java:3885) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1702) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at android.app.Activity.dispatchTouchEvent(Activity.java:2132) 
11-30 10:50:23.795: E/AndroidRuntime(2199):  at 
... 

내가 사용하고 하위 분류 WebView,하지만 난 onTouchEvent() 메소드를 오버라이드 (override)하지 않습니다.

흥미롭게도 OS v2.x 에뮬레이터뿐만 아니라 OS v2.3 장치에서도이 오류를 발견했습니다. 4.x 장치에서 테스트 할 때마다 모든 것이 잘되고 모든 WebViews는 동시에 감동과 스크롤을 처리 할 수 ​​있습니다.

무슨 일입니까? 이것은 Android에서 알려진 버그입니까? 비슷한 상황에 대한 기록을 찾을 수 없었습니다. 해결 방법에 대한 제안 사항이 있습니까? 나는 그 중 하나가 스크롤되는 동안 다른 WebView을 만지지 못하도록 막을 수는 있지만 어색한 것처럼 보입니다.

답변

0

내가 문제의 원인을 알았지 만 문제가 진정으로 무엇인지 알지 못했습니다.

WebView이 모두 onTouch 이벤트를 통과하지 못했을 때 문제가되는 this link이 발생했습니다. onTouchListener을 으로 설정 했으므로 true을 반환하여 첫 번째 이벤트를 처리했지만 그 다음 이벤트를 따라 false을 반환하여 전달했습니다.

분명히 OS의 일부 버전은 모두 onTouch 이벤트를 처리 할 수 ​​없을 때 엉망이됩니다.