Процесс рендеринга webView (11521) убивает (OOM или обновление), убивает приложение ⇐ Android
Процесс рендеринга webView (11521) убивает (OOM или обновление), убивает приложение
Мой логарифм показывает это, и приложение закрывается. Эта ошибка возникает не на всех телефонах, а на некоторых.
Это проблема WebView, поскольку loadData не выполняет никаких отдельных действий.
Процесс рендеринга webView (11521) завершился (OOM или обновление) не был обработан всеми связанными веб-просмотрами, что привело к закрытию приложения
Я знал, что это пришло из WebView, и видел подобные случаи.
я добавил, но изменений не было
*ps справочный сайт https://developer.android.com/develop/u ... view?hl=ko
setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) мой код
coupangWeb.settings.apply { javaScriptEnabled = правда } coupangWeb.addOnAttachStateChangeListener(объект: View.OnAttachStateChangeListener{ переопределить fun onViewAttachedToWindow(v: View) { webFrame.layoutParams.height = WindowManager.LayoutParams().width } переопределить удовольствие onViewDetachedFromWindow(v: View) {} }) coupangWeb.webViewClient = объект: WebViewClient() { переопределить удовольствие mustOverrideUrlLoading(view: WebView?, url: String): Boolean { val намерение = намерение (Intent.ACTION_VIEW) намерение.данные = Uri.parse(url) Intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_SINGLE_TOP Holder.itemView.context.startActivity(намерение) вернуть истину } } coupangWeb.setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) вал HTML = "" + "" + "new PartnersCoupang.G({someThing});" + "" + "" coupangWeb.loadData(html, «текст/html», «UTF8») Я изменил код
val superSafeWebView = Holder.itemView.findViewById(R.id.coupang_web)//WebView(holder.itemView.context) вар SafeBrowsingIsInitialized: Boolean = false //superSafeWebView.webViewClient = MyRendererTrackingWebViewClient(holder.itemView) val webView = Holder.itemView.findViewById(R.id.coupang_web) superSafeWebView.settings.apply { javaScriptEnabled = правда } superSafeWebView.addOnAttachStateChangeListener(объект: View.OnAttachStateChangeListener{ переопределить fun onViewAttachedToWindow(v: View) { webFrame.layoutParams.height = WindowManager.LayoutParams().width } переопределить удовольствие onViewDetachedFromWindow(v: View) {} }) superSafeWebView.webViewClient = объект: MyRendererTrackingWebViewClient(holder.itemView) { переопределить удовольствие mustOverrideUrlLoading(view: WebView?, url: String): Boolean { val намерение = намерение (Intent.ACTION_VIEW) намерение.данные = Uri.parse(url) Intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_SINGLE_TOP Holder.itemView.context.startActivity(намерение) вернуть истину } } superSafeWebView.setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) вал HTML = "" + "" + "new PartnersCoupang.G({someThing});" + "" + "" если (WebViewFeature.isFeatureSupported(WebViewFeature.START_SAFE_BROWSING)) { WebViewCompat.startSafeBrowsing(holder.itemView.context, ValueCallback { успех -> SafeBrowsingIsInitialized = правда если (!успех) { Log.e("MY_APP_TAG", "Невозможно инициализировать безопасный просмотр!") } еще { Log.e("MY_APP_TAG", "способен") //superSafeWebView?.loadData(html, "text/html", "UTF8") superSafeWebView?.loadDataWithBaseURL(null, html, "text/html", "UTF8", null) } }) } открытый класс MyRendererTrackingWebViewClient (valviews: View): WebViewClient() { частная переменная mWebView: WebView? = ноль переопределить удовольствие onRenderProcessGone (представление: WebView, деталь: RenderProcessGoneDetail): Boolean { если (!detail.didCrash()) { // Рендерер закрыт, потому что в системе закончилась память. Приложение // можно корректно восстановить, создав новый экземпляр WebView в // передний план. Log.e("MY_APP_TAG", ("Система завершила процесс рендеринга WebView" + "вернуть память. Воссоздать...")) mWebView?.также { webView -> val webViewContainer: ViewGroup =views.findViewById(R.id.coupang_web) webViewContainer.removeView(webView) webView.destroy() мВебвиев = ноль } вернуть истину } Log.e("MY_APP_TAG", "Процесс рендеринга WebView завершился сбоем!") вернуть ложь } } Это тоже не работает
Мой логарифм показывает это, и приложение закрывается. Эта ошибка возникает не на всех телефонах, а на некоторых.
Это проблема WebView, поскольку loadData не выполняет никаких отдельных действий.
Процесс рендеринга webView (11521) завершился (OOM или обновление) не был обработан всеми связанными веб-просмотрами, что привело к закрытию приложения
Я знал, что это пришло из WebView, и видел подобные случаи.
я добавил, но изменений не было
*ps справочный сайт https://developer.android.com/develop/u ... view?hl=ko
setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) мой код
coupangWeb.settings.apply { javaScriptEnabled = правда } coupangWeb.addOnAttachStateChangeListener(объект: View.OnAttachStateChangeListener{ переопределить fun onViewAttachedToWindow(v: View) { webFrame.layoutParams.height = WindowManager.LayoutParams().width } переопределить удовольствие onViewDetachedFromWindow(v: View) {} }) coupangWeb.webViewClient = объект: WebViewClient() { переопределить удовольствие mustOverrideUrlLoading(view: WebView?, url: String): Boolean { val намерение = намерение (Intent.ACTION_VIEW) намерение.данные = Uri.parse(url) Intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_SINGLE_TOP Holder.itemView.context.startActivity(намерение) вернуть истину } } coupangWeb.setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) вал HTML = "" + "" + "new PartnersCoupang.G({someThing});" + "" + "" coupangWeb.loadData(html, «текст/html», «UTF8») Я изменил код
val superSafeWebView = Holder.itemView.findViewById(R.id.coupang_web)//WebView(holder.itemView.context) вар SafeBrowsingIsInitialized: Boolean = false //superSafeWebView.webViewClient = MyRendererTrackingWebViewClient(holder.itemView) val webView = Holder.itemView.findViewById(R.id.coupang_web) superSafeWebView.settings.apply { javaScriptEnabled = правда } superSafeWebView.addOnAttachStateChangeListener(объект: View.OnAttachStateChangeListener{ переопределить fun onViewAttachedToWindow(v: View) { webFrame.layoutParams.height = WindowManager.LayoutParams().width } переопределить удовольствие onViewDetachedFromWindow(v: View) {} }) superSafeWebView.webViewClient = объект: MyRendererTrackingWebViewClient(holder.itemView) { переопределить удовольствие mustOverrideUrlLoading(view: WebView?, url: String): Boolean { val намерение = намерение (Intent.ACTION_VIEW) намерение.данные = Uri.parse(url) Intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK или Intent.FLAG_ACTIVITY_SINGLE_TOP Holder.itemView.context.startActivity(намерение) вернуть истину } } superSafeWebView.setRendererPriorityPolicy(RENDERER_PRIORITY_BOUND, true) вал HTML = "" + "" + "new PartnersCoupang.G({someThing});" + "" + "" если (WebViewFeature.isFeatureSupported(WebViewFeature.START_SAFE_BROWSING)) { WebViewCompat.startSafeBrowsing(holder.itemView.context, ValueCallback { успех -> SafeBrowsingIsInitialized = правда если (!успех) { Log.e("MY_APP_TAG", "Невозможно инициализировать безопасный просмотр!") } еще { Log.e("MY_APP_TAG", "способен") //superSafeWebView?.loadData(html, "text/html", "UTF8") superSafeWebView?.loadDataWithBaseURL(null, html, "text/html", "UTF8", null) } }) } открытый класс MyRendererTrackingWebViewClient (valviews: View): WebViewClient() { частная переменная mWebView: WebView? = ноль переопределить удовольствие onRenderProcessGone (представление: WebView, деталь: RenderProcessGoneDetail): Boolean { если (!detail.didCrash()) { // Рендерер закрыт, потому что в системе закончилась память. Приложение // можно корректно восстановить, создав новый экземпляр WebView в // передний план. Log.e("MY_APP_TAG", ("Система завершила процесс рендеринга WebView" + "вернуть память. Воссоздать...")) mWebView?.также { webView -> val webViewContainer: ViewGroup =views.findViewById(R.id.coupang_web) webViewContainer.removeView(webView) webView.destroy() мВебвиев = ноль } вернуть истину } Log.e("MY_APP_TAG", "Процесс рендеринга WebView завершился сбоем!") вернуть ложь } } Это тоже не работает
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение