2011-04-07 49 views
11

我有一個包含的WebView爲孩子,當我滾動我收到以下警告圖庫圖庫,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 

據我瞭解,這與Android的變焦其中較新的設備允許以避免應用(專爲手機)做出現在例如爲小窗口的應用片。

我的解決辦法:

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

最後一行setBuiltInZoomControls(真)所作的問題消失了我。 我希望這可以幫助你!

[編輯]這個解決方案昨天工作正常,但今天早上我再次得到錯誤。這可能不是解決方案。對不起,誤導性帖子。

[EDIT2]現在我已經改變了我的代碼,之後我沒有再次遇到錯誤,我運行了一個沒有錯誤的1000次迭代的測試套件。什麼解決了我的問題是該網址沒有正確傳遞給web視圖。它確定一個正確的URL後問題消失了,它得到一個空字符串。希望這會幫助某人。

+0

@macbac - 我會測試並將其標記爲接受,如果它解決了問題... – 66CLSjY 2011-12-22 12:43:25

+0

@macbac - 接受。 srry遲到迴應:)有點忙,檢查。 – 66CLSjY 2013-06-05 09:25:50

+0

那麼有些時候,如果您的WebView的佈局高度或寬度與您的父級相對應,也會導致這種情況。將其設置爲匹配父級並進行檢查。 – 2014-09-26 10:40:19

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

謝謝,但我已經知道上述參考。我不明白寬度爲零的原因。我的意思是我能夠在屏幕上看到WebView。如果我使用TextView代替WebView,那麼此警告不會發生...至於代碼由於法律原因,我不允許發佈它。 – 66CLSjY 2011-07-05 04:09:37

+0

@Fresh_Meat,我爲你增加了另一個參考。沒有太多的幫助,但是,你用這個廣告?如果是這樣,你能說這種類型嗎?公司?等等......? – 2011-07-05 05:13:23