2011-04-07 3 views
11

I가 나는 다음과 같은 경고를 얻고 갤러리를 스크롤 할 때, 그 아이로 웹보기의 포함 된 갤러리,Android :이 경고 메시지는 무엇을 의미합니까? - (WebCore)

'04-07 19:35:37.409: WARN/webcore(664): Can't get the viewWidth after the first layout 
04-07 19:35:37.470: WARN/webcore(664): skip viewSizeChanged as w is 0' 

무엇이 경고를 참조합니까? [나는. 레이아웃 PARAMS 중 하나를 하드 코딩하지 않은]

이 경고는 정말 도움이 될 것입니다 발생하는 이유에 대한 어떤 빛 ...

이들도 사전에

04-15 11:10:13.202: DEBUG/webviewglue(617): nativeDestroy view: 0x257f40 
04-15 11:10:13.243: DEBUG/webviewglue(617): nativeDestroy view: 0x25d680 
04-15 11:10:13.292: DEBUG/webviewglue(617): nativeDestroy view: 0x240688 
04-15 11:10:13.332: DEBUG/webviewglue(617): nativeDestroy view: 0x249918 
04-15 11:10:13.373: DEBUG/webviewglue(617): nativeDestroy view: 0x226608 
04-15 11:10:13.423: DEBUG/webviewglue(617): nativeDestroy view: 0x21e418 
04-15 11:10:13.482: DEBUG/webviewglue(617): nativeDestroy view: 0x23a4e8 
04-15 11:10:13.533: DEBUG/webviewglue(617): nativeDestroy view: 0x235c68 
04-15 11:10:13.572: DEBUG/webviewglue(617): nativeDestroy view: 0x212a28 

감사를 인쇄했다.

답변

1

나는 정상적인 webview가 작동하지 않을 것이고 나와 같은 오류를 설명했다. 내가이 새로운 장치 (휴대폰에 대한 설계) 응용 프로그램을 방지하기 위해 수 있습니다 안드로이드 줌과 관련이 알고있는 것처럼

skip viewSizeChanged as w is 0 

예를 들면에 작은 윈도우 응용 프로그램을 표시 정제.

내 솔루션 :

WebView mWebView = (WebView) findViewById(R.id.webview); 
mWebView.getSettings().setBuiltInZoomControls(true); 

마지막 줄의 setBuiltInZoomControls (사실은) 문제가 나를 위해 사라했다. 도움이 되었기를 바랍니다.

[편집]이 솔루션은 어제 나에게 잘 돌아 갔지만, 오늘 아침 나는 오류가 다시 발생했다. 이것은 아마도 해결책이 아닙니다. 오해의 소지가있는 게시물을 유감스럽게 생각합니다.

[EDIT2] 이제 코드를 변경 했으므로 오류가 다시 발생하지 않았으므로 오류없이 1000 회 반복 테스트를 실행했습니다. 무슨 문제가 해결 된 URL을 제대로 webview 전달되지 않았습니다. 문제가 해결 된 올바른 URL을 확인한 후 빈 문자열이 나타납니다. 바라기를 이것은 누군가를 도울 것입니다.

+0

@macbac - 내가 테스트하고 문제가 해결되는지 접수로 표시됩니다 ... – 66CLSjY

+0

@macbac - 받아 들였다. 늦은 응답에 대한 srry :) 확인 조금 바빴다. – 66CLSjY

+0

글쎄, 웹 디자인의 레이아웃 높이나 너비가 부모와 관련이있을 때도 발생합니다. 부모와 일치하도록 설정하고 확인하십시오. –

1

viewSize가 변경되었으며이를 알리고 있습니다. 어떤 이유로 든 너비 값이 0 (확대/축소 가능) 일 수 있습니다. 여기에서 알 수 있듯이 :이 기준에 사용

// notify webkit that our virtual view size changed size (after inv-zoom) 
      private void viewSizeChanged(int w, int h, int textwrapWidth, 
        float scale, int anchorX, int anchorY, boolean ignoreHeight) { 
       if (DebugFlags.WEB_VIEW_CORE) { 
        Log.v(LOGTAG, "viewSizeChanged w=" + w + "; h=" + h 
          + "; textwrapWidth=" + textwrapWidth + "; scale=" 
          + scale); 
       } 
       if (w == 0) { 
        Log.w(LOGTAG, "skip viewSizeChanged as w is 0"); 
        return; 
       } 
       int width = w; 
       if (mSettings.getUseWideViewPort()) { 
        if (mViewportWidth == -1) { 
         if (mSettings.getLayoutAlgorithm() == WebSettings.LayoutAlgorithm.NORMAL) { 
          width = WebView.DEFAULT_VIEWPORT_WIDTH; 
         } else { 
          /* 
          * if a page's minimum preferred width is wider than the 
          * given "w", use it instead to get better layout result. If 
          * we start a page with MAX_ZOOM_WIDTH, "w" will be always 
          * wider. If we start a page with screen width, due to the 
          * delay between {@link #didFirstLayout} and 
          * {@link #viewSizeChanged}, 
          * {@link #nativeGetContentMinPrefWidth} will return a more 
          * accurate value than initial 0 to result a better layout. 
          * In the worse case, the native width will be adjusted when 
          * next zoom or screen orientation change happens. 
          */ 
          width = Math.min(WebView.sMaxViewportWidth, Math 
            .max(w, Math.max(
              WebView.DEFAULT_VIEWPORT_WIDTH, 
              nativeGetContentMinPrefWidth()))); 
         } 
        } else if (mViewportWidth > 0) { 
         width = Math.max(w, mViewportWidth); 
        } else { 
         width = textwrapWidth; 
        } 

      } 

문서는 자세한 내용은 here입니다. 귀하의 코드를 보지 않고서도 왜 그것이 일어나고 있는지 정확히 알지 못합니다. 그런 다음이 매개 변수를 사용하여 모든 뷰의 조정을 건너 뛰고 있으므로 로그가 생성됩니다.

다른 컨텍스트가 포함되어 있다는 사실에 빛을 비춰 코드 (이해) 정말 내가 얼마 전에 here 읽기 토론 전에 말보다 다른를 참조 할 수있는 유일한 일을 보여줄 수없이 [편집] , 다른 데이터. 엔진이나 응용 프로그램 컨텍스트 대신 활동 컨텍스트를 사용할 수 있습니다.별로 도움이되지 않지만 첫 번째 황금 벽돌 일 수 있습니다. : -? 행운을 빌어 요, 당신이 관리하기를 희망합니다.

+0

고맙습니다.하지만 이미 위 참조를 알고있었습니다. 너비가 0 인 이유를 이해하지 못합니다. 나는 화면에서 WebView를 볼 수 있음을 의미합니다. WebView 대신 TextView를 사용하면이 경고가 발생하지 않습니다 ... 법적인 이유로 인해 코드를 게시 할 수 없습니다. – 66CLSjY

+0

@Fresh_Meat, 당신을 볼 또 다른 참조를 추가했습니다. 별 도움이되지 않지만 광고에도이 기능을 사용하고 있습니까? 그렇다면 유형을 말할 수 있습니까? 회사? 등 ...? –