在Android 9(Api 29)上,我试图加载一个网址,但出现错误“无法加载该网址的网页,因为:net :: ERR_ACCESS_DENIED”。
我在AndroidManifest.xml
文件中拥有互联网访问权限
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
从logcat,我也可以看到以下错误:
E/chromium: [ERROR:socket_posix.cc(94)] CreatePlatformSocket() failed: Operation not permitted (1)
我的代码如下:
WebView webView = findViewById(R.id.webView);
webView.loadUrl("https://andela.com/alc/");
Run Code Online (Sandbox Code Playgroud)
稍后,我添加了以下代码以获取更多详细信息:
webView.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
Log.d("TAG", error.getDescription().toString());
// handler.proceed(); This line wont make a different on API 29, Webview still bank
}
});
Run Code Online (Sandbox Code Playgroud)
使用运行API 25的仿真器时,Webview会正确加载URL。也已在API 28上进行了测试,并且运行良好。仅在API 29上不起作用。
在我的情况下,网页变得正确加载(不ERR_ACCESS_DENIED
改变之后)applicationId
中build.gradle
(和运行应用程序的课程)。之后,您可以归还旧的applicationId
.
mgk*_*gks -1
可能是 SSL 证书抛出错误,请尝试以下操作:
// Ignoring SSL certificate errors
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError er) {
handler.proceed();
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用Android Smart WebView框架构建您的应用程序,它可以让您更深入地了解网页可能发生的情况。
归档时间: |
|
查看次数: |
1035 次 |
最近记录: |