我在开发应用程序时使用了StrictMode策略:
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
我正在经历一种新型的崩溃,这种崩溃似乎不存在:
W/WebView: java.lang.Throwable: A WebView method was called on thread 'FinalizerDaemon'. All WebView methods must be called on the same thread. (Expected Looper Looper (main, tid 2) {7424b6e} called on null, FYI main Looper is Looper (main, tid 2) {7424b6e})
at android.webkit.WebView.checkThread(WebView.java:2695)
at android.webkit.WebView.loadUrl(WebView.java:969)
at com.google.android.gms.ads.internal.webview.v.e(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:1)
at com.google.android.gms.ads.internal.webview.v.destroy(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:9)
at com.google.android.gms.ads.internal.webview.t.destroy(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:10)
at com.google.android.gms.ads.nonagon.ad.interstitial.b.finalize(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:2)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:252)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:239)
at java.lang.Daemons$Daemon.run(Daemons.java:105)
at java.lang.Thread.run(Thread.java:764)
2019-06-17 15:25:59.035 31170-31180/hu.myapp.name D/StrictMode: StrictMode policy violation: android.os.strictmode.WebViewMethodCalledOnWrongThreadViolation
at android.webkit.WebView.checkThread(WebView.java:2695)
at android.webkit.WebView.loadUrl(WebView.java:969)
at com.google.android.gms.ads.internal.webview.v.e(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:1)
at com.google.android.gms.ads.internal.webview.v.destroy(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:9)
at com.google.android.gms.ads.internal.webview.t.destroy(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:10)
at com.google.android.gms.ads.nonagon.ad.interstitial.b.finalize(:com.google.android.gms.policy_ads_fdr_dynamite@20290004@20290004.249178941.249178941:2)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:252)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:239)
at java.lang.Daemons$Daemon.run(Daemons.java:105)
at java.lang.Thread.run(Thread.java:764)
我的应用程序没有任何网络视图,这就是为什么这很奇怪。
这确实很烦人,崩溃不包括我的代码的任何行,仅包括android和google包。
有任何想法吗?
最佳答案
显然您使用的是使用WebView的应用内广告SDK(Admob?),请参见com.google.android.gms.ads.internal.webview...
。
另外,根据我对WebView
和StrictMode
的经验,您可能会遇到这种情况,这可能不是Ads SDK的错误:我的应用程序必须禁用某些检查(或减少记录罚款)为了解决该问题(我们确实使用WebView
,并且由于从UI线程进行磁盘访问以及类似的问题,WebView
本身也会为StrictMode
创建问题)。