Android Webview:无法调用determineVisibility() – 从未看到pid的连接

我有一个Android Webview,当我点击一个链接下载一个文件(PDF格式的图像等),我收到了错误消息。

Error message: Cannot call determinedVisibility() - never saw a connection for the pid 

任何想法我做错了什么? 谁能帮忙请!

Solutions Collecting From Web of "Android Webview:无法调用determineVisibility() – 从未看到pid的连接"

只是一些configuration:

  webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setDomStorageEnabled(true); 

我得到了同样的错误,Burhans解决scheme没有帮助我。 当您尝试加载不同的url时,我认为事情出错了。

编辑:find一个更好的解决scheme学分转到user2652394 WebView必须加载两次才能正确加载

你必须这样做:

  webView.postDelayed(new Runnable() { @Override public void run() { webView.loadUrl(landingpage); } }, 500); 

在我的情况下,这个问题通过布局属性中的错误设置产生。 我用过:

  <WebView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/webView" android:layout_below="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentTop="false" android:layout_alignWithParentIfMissing="false" /> 

而不是设置:

  <WebView android:id="@+id/webView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/textView" /> 

问题已经解决,当我删除“layout_alignParent”设置。

我面临同样的问题。

通过给WebView一个静态高度(即300dp)或指定minHeight值解决。

这是我如何解决类似的问题:

  mWebView.setWebChromeClient(new WebChromeClient()); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view,String url) { return false; } }); mWebView.loadURL(... 

晚会,但可能会有所帮助。 可能听起来很愚蠢,但是我犯的错误是在URL的开头没有添加http://

检查清单文件上是否正确设置了Internet权限。 确保权限标签应该在应用程序标签之外。

 <uses-permission android:name="android.permission.INTERNET" /> 

希望这可能有助于一个人。

我通过使用onPageFinished方法,而不是shouldOverrideUrlLoadingfind解决方法。 它还在参数列表中提供了所需的URL。

唯一的窍门是设置一个检查,以便在页面加载时onPageFinished时,不会触发方法的主逻辑(在我的情况下为Toast)。

背景

这里是浏览器引擎中的方法的源代码,它提供了来自Chromium源的错误BindingManagerImpl.java ):

 @Override public void determinedVisibility(int pid) { ManagedConnection managedConnection; synchronized (mManagedConnections) { managedConnection = mManagedConnections.get(pid); } if (managedConnection == null) { Log.w(TAG, "Cannot call determinedVisibility() - never saw a connection for the pid: " + "%d", pid); return; } 

分析

这是来自内容的渲染警告

连续调用loadUrl会导致竞争条件 。 问题是loadUrl("file://..") 没有立即完成,所以当你调用loadUrl("javascript:..")它有时会页面加载之前执行。

详情

有关更多详细信息,请参阅此计算器答案。

 mWebView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Log.d("download",url); } }); 

我面临同样的问题。 我可以通过下面的代码来解决我的问题:

 webView.postDelayed(new Runnable() { @Override public void run() { webView.loadUrl(url); } }, 500); 

代替:

 webview.loadUrl(url); 

然后,设置urlhttps://开头