問題タブ [adview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 向きの変更やマルチスレッドの実行時にすべての Web ビューの読み込みが停止する原因となる AdView のバグ?
画面の向きが変わってマルチスレッドが実行されているとき、Adview に問題があることがわかりました。これはAdviewのバグかもしれないと思います。この問題は、アプリケーション内のすべての Web ビューに影響します。Web ビューはコンテンツの読み込みを停止します。つまり、空白または以前に表示されていたコンテンツが表示されます。
テスト環境は
プラットフォーム: Google Nexus S + Android 4.1.2 (このプラットフォームだけでなく、他の多くのプラットフォーム、エミュレーターも影響を受けます)
Ads SDK: 6.4.1 (同じ問題がある Ads SDK 4.1.1 もテストしました)
この問題を再現する方法は、
次のマニフェスト、main.xml レイアウト、helloAndroid.java、および Ads SDK (6.4.1 以前のバージョン) を使用して Android プロジェクトを構築します。
上記のプラットフォームで HelloAndroid プロジェクトを実行するか、他のプラットフォームでも影響を受ける可能性のあるエミュレーターで実行します。
アプリの起動後、「OnCreate 関数が呼び出されました」と表示されます。また、コンテンツが読み込まれる時間も表示されます。その間、広告は画面の上部に表示されます。
ここで、[スレッドの計算を開始] ボタンをクリックすると同時に、画面を回転させて向きを変更し、すぐに向きを変更します。その間、最後の計算タスクが終了した直後に [スレッドの計算を開始] ボタンを連続してクリックします。これらのアクションを数回繰り返すと、Web ビューがリロードされないことがわかります。そのテキストは、画面を回転させるかどうかに関係なく、常に「バックグラウンド計算スレッドが完了しました」です。(「スレッド計算の開始」ボタンをクリックするかどうかに関係なく、そのテキストは「構成が変更されました」となる場合もあります)。Webview に表示される時刻も更新されません。広告は表示されません。
ログ ファイルから、次のような多くの広告エラーを確認できます。
11-17 11:51:11.254: I/Ads(7411): URL の取得中に AdLoader が 60000 ミリ秒後にタイムアウトしました。
11-17 11:51:11.254: I/Ads(7411): onFailedToReceiveAd(ネットワーク エラーが発生しました。)
例外も発生しますが、この例外は上記のエラーが発生した後に表示されます。
11-17 11:53:14.597: W/Ads(7411): AdWebView でデータをロード中にエラーが発生しました:
11-17 11:53:14.609: I/Ads(7411): 以下がキャッチされ、処理されました:
11-17 11:53:14.609: 私/広告 (7411): java.lang.NullPointerException
11-17 11:53:14.609: 私/広告 (7411): android.webkit.WebViewClassic.loadDataWithBaseURL (WebViewClassic.java:2564) で
11-17 11:53:14.609: 私/広告 (7411): android.webkit.WebView.loadDataWithBaseURL (WebView.java:842) で
11-17 11:53:14.609: 私/広告 (7411): com.google.ads.internal.AdWebView.loadDataWithBaseURL (SourceFile:229) で
11-17 11:53:14.609: 私/Ads(7411): com.google.ads.internal.c$c.run(SourceFile:164)
11-17 11:53:14.609: I/広告 (7411): android.os.Handler.handleCallback (Handler.java:615) で
11-17 11:53:14.609: I/Ads(7411): android.os.Handler.dispatchMessage(Handler.java:92) で
11-17 11:53:14.609: I/Ads(7411): android.os.Looper.loop(Looper.java:137)
11-17 11:53:14.609: 私/広告 (7411): android.app.ActivityThread.main (ActivityThread.java:4745) で
11-17 11:53:14.609: I/Ads(7411): java.lang.reflect.Method.invokeNative(ネイティブ メソッド) で
11-17 11:53:14.609: I/広告 (7411): java.lang.reflect.Method.invoke (Method.java:511) で
11-17 11:53:14.609: 私/広告 (7411): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:786) で
11-17 11:53:14.609: 私/広告 (7411): com.android.internal.os.ZygoteInit.main (ZygoteInit.java:553) で
11-17 11:53:14.609: 私/広告 (7411): dalvik.system.NativeStart.main (ネイティブ メソッド) で
この問題は、次の観察結果に基づいて、webView またはスレッド プログラミングではなく、AdView が原因であると考えています。
webView を別のアクティビティに配置した場合、つまりマルチスレッド アクティビティにボタンと adView のみが含まれている場合でも、上記の再現手順の後にこの問題が発生することがわかりました。そして、問題が発生した後、webView を含む他のアクティビティを移動しましたが、それでも読み込みは停止します。つまり、問題を引き起こすのは webView ではありません。
計算スレッドは非常に単純で、UI 操作は含まれていません。広告の読み込みの開始と停止は、常にメイン スレッドで行われます。
コードは非常に単純です。マニフェスト ファイルは次のとおりです。
唯一のレイアウト ファイルは次のとおりです。
HelloAndroid.java ファイルは次のとおりです。
android - admob 広告を表示するときの Android NullPoinerException
アプリに次のコードがあります。
そして、adView を Linear Layout に追加する行で、null ポインター例外が発生し続けます。ここで何が問題になる可能性がありますか? 私のLogCatは以下に掲載されています:
ios - Google モバイルの追加を受信できませんでした
アプリでモバイル広告を受信できません。
私のコードはここにあります:-
しかし、エラーが発生しています:リクエストエラー:ネットワークエラーが発生しました。コードのどこに問題があるか、または何をする必要があるか教えてください。
android - アクティビティの開始時に AdView を固定サイズにする
AdView がアクティビティの開始直後に初期サイズを取得し、その固定サイズにとどまるようにする方法はありますか。現時点では、広告の読み込み時に変更されます。つまり、アクティビティの開始時にレンダラーの onsurfaceChanged 関数が 2 回呼び出され、初期化が 2 回実行されます。
これを回避することはできますが、インフレ時にバナーに固定サイズを割り当てる簡単な方法があれば、非常に簡単になります。バナー サイズのディップ値をハードコーディングしないでください。私の AdView は、以下の xml によって初期化されます。
罪のない人 (私) を保護するために、デバイス/ユニット ID が明らかに変更されました
android - DoubleClick インタースティシャルを停止する方法
アクティビティ A に DoubleClick インタースティシャルを表示し、アクティビティ B にシンプルな DoubleClick バナーを表示する必要があります。インタースティシャルを 3 秒間だけ表示してからアクティビティ B に移動する必要があります (ユーザーがインタースティシャルの閉じるボタンをクリックしない場合)。 )。
現在、インタースティシャルとバナーの両方が正常に表示されており、この 3 秒間待っていると期待できます。その場合、アクティビティ B の単純なバナーがアクティビティ B に表示されなくなり、次のログが表示されます。
インタースティシャルまたはランディング ページが表示されている間に loadAd が呼び出されるため、中止します
インタースティシャルを適切に「非表示」にする唯一の方法は、onDismissScreen 関数を通過することのようですが、それもできません。
私のコードはこれです
私はすでにこれらすべての可能性を試しました
そして何も機能しません。
どんな手掛かり?
前もって感謝します。
android - Android MMAdView が S3 で正しく表示されませんか?
こんにちは、アプリケーションの 1 つで MMAdView を使用しています。SAMSUNG S3 を除くすべてのデバイスで正常に動作しています。なぜこれが起こるのか、この問題について何か考えがあります。
ここに付属のスクリーンショート
この 480x800 Htc デバイス
そしてここに Samsung s3 デバイス 720x1280
IN samsung s3 デバイスの右側隅にある空白。
これは私が使用しているコードです。
活動コード
これは Xml ファイルです
EDIT:
これは私がMMAdViewを使用しているドキュメントです