Java 安卓Q(API级别29)没有';无法加载HTTPS网站。给出错误:(网络::错误\u访问\u被拒绝)
我试图修复Stackoverflow上的一个问题,因为此人试图使用Java 安卓Q(API级别29)没有';无法加载HTTPS网站。给出错误:(网络::错误\u访问\u被拒绝),java,android,android-studio,android-webview,android-10.0,Java,Android,Android Studio,Android Webview,Android 10.0,我试图修复Stackoverflow上的一个问题,因为此人试图使用WebView加载Facebook的网站“”,但无法完成。我查看了代码,发现onReceivedSlerror()的方法没有被覆盖。我推翻了它,自己在运行Android 9(API级别28)及更低版本的Android模拟器上测试了它,即使没有添加ClearTextTrafficAllowed,它也能工作。然而,在Android Q(API级别29)上测试时,我遇到了以下错误: net::错误访问被拒绝 以下是onCreate方法
WebView
加载Facebook的网站“”,但无法完成。我查看了代码,发现onReceivedSlerror()的方法没有被覆盖。我推翻了它,自己在运行Android 9(API级别28)及更低版本的Android模拟器上测试了它,即使没有添加ClearTextTrafficAllowed
,它也能工作。然而,在Android Q(API级别29)上测试时,我遇到了以下错误:
net::错误访问被拒绝
以下是onCreate
方法的副本:
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webDimrah = findViewById(R.id.WebView1);
WebSettings webSettingDimrah = webDimrah.getSettings();
webSettingDimrah.setJavaScriptEnabled(true);
webDimrah.setWebViewClient(new WebViewClient(){
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
handler.proceed();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
webDimrah.loadUrl("https://facebook.com/");
}
Internet权限已添加到清单文件。任何关于如何解决此问题的建议都将不胜感激:)在您的清单中确保添加android:usesCleartextTraffic=“true”
Android 6.0在Android清单中的application元素下引入了useCleartextTraffic属性。Android P中的默认值为“false”。将此设置为true表示应用程序打算使用清除网络流量。您必须在清单中使用android:usesCleartextTraffic
如果存在Android网络安全配置,则在Android 7.0(API级别24)及更高版本上忽略此标志
请查看开发者网站的以下解释以了解更多详细信息