2016-05-03 12 views
1

唯一の警告は次のとおりです。WebviewはAndroid 5には表示されていますが、2.3では表示されていませんか?私のlogcatで

webcore: Can't get the viewWidth after the first layout.

私はプログラムで追加された私のアプリでWebViewのを使用して広告バナーを持っています。 Androidバージョン5では表示されますが、Android 2.3では表示されません。私はjavaの代わりにXMLをテストして、同じエラーを含む他の多くの記事を検索しましたが、誰も私の問題を解決しませんでした! ログはコード内のスタックトレースからのものではありません。それはロックされているバナークラスから来て、私はそれにアクセスできません。私は本当に不満です。私はこの問題に関する多くの記事を見てきました。助けてください!

public class Users extends Activity{ 

static boolean showAd = true; 

@Override 
protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.users); 
    try{ 
     if (showAd) 
      showBanner(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 


private void showBanner(){ 
    try { 
     Banner banner = new Banner(this); 
     LinearLayout layout = (LinearLayout) findViewById(R.id.users); 
     layout.addView(banner); 
    } catch (Exception e){e.printStackTrace();} 
} 

} 
+0

ます。http: //stackoverflow.com/questions/6253337/webview-doesnt-get-drawn-warn-webcore5336-cant-get-the-viewwidth-after-the?rq=1 –

+0

私はすでにそれを使用しています。私のために働かなかった。同じ警告、結果なし: – saraX

+0

私はデバッグできるように完全なコードを表示してください@saraX – Lampard

答えて

0

このようなあなたのバナーを追加してみてください:

LinearLayout layout = (LinearLayout) findViewById(R.id.users); 
layout.addView (banner, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT)); 
layout.requestlayout(); 

私は、Android WebViewCoreのソースコードをチェックしupdateViewport方法でラインであなたのエラーを検出しました。

メッセージが時に記録されます。viewportWidthはそのように計算され

if (viewportWidth == 0) { 
       Log.w(LOGTAG, "Can't get the viewWidth after the first layout"); 
      } 

webViewWidth = mWebView.getViewWidth(); 

ので、あなたのケースでは、WebViewの幅がゼロに設定されているようだ、私は二重のチェックを示唆レイアウトxmlファイルを使用して、webviewとその親ViewGroup次元が適切に設定されていることを確認します。

+0

私は同じ警告をしましたが、最初のレイアウトの後にviewWidthを取得できません:( – saraX

+0

まだ同じです。これらのコードはLollipopのGalaxy Note 3で動作しますが、Gingerbreadのxperia rayでは動作しません。 – saraX

+0

もう一度チェックしても間違いはありませんでした!私は新しいICS ROMを見つけることができましたXperia RayのためにROMをフラッシュしたので、デバイスはICSに更新されました。もう一度私はアプリと今回は、広告バナーは魅力のように働いたテスト!今私はそれがアンドロイドバージョン2.3の問題だと確信しています。 :( – saraX

1

あなたはこのようアンドロイドでAdBannerを使用することができます。

はXMLでadviewを定義します。

<com.google.ads.AdView 
    xmlns:ads="http://schemas.android.com/apk/res/com.flash.light" 
    android:id="@+id/add_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ads:adSize="BANNER" 
    ads:adUnitId="XXXXXXXXX"/> 

次に、あなたのアクティビティでは、このように進めるべき:

public class BannerSample extends Activity { 
@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
AdView adview = (AdView)findViewById(R.id.add_view);  
AdRequest re = new AdRequest();    
adview.loadAd(re); 
} 
関連する問題