【发布时间】:2018-12-25 03:52:46
【问题描述】:
我正面临这个异常
"java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse" 在 android 中实现 webview 时。
我在网上搜索了合适的解决方案,但没有找到任何有用的东西。
我的 XML 文件是这个
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar_title" />
<im.delight.android.webview.AdvancedWebView
android:id="@+id/mWebview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
我针对这个 XML 的 java 代码是
public class PaymentActivity extends ParentActivity implements AdvancedWebView.Listener {
// private WebView webView;
private AdvancedWebView mWebView;
ProgressDialog dialog;
UserModel userModel;
SessionManager sessionManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_payment);
ButterKnife.bind(this);
setActionBar("Payment");
sessionManager = new SessionManager(this);
userModel = sessionManager.getUserInformation();
mWebView = findViewById(R.id.mWebview);
mWebView.setListener(this, this);
mWebView.getSettings().setJavaScriptEnabled(true);
String planType = getIntent().getStringExtra("planType");
String url = "www.google.com";
dialog = new ProgressDialog(this);
dialog.setMessage("Loading");
dialog.setCancelable(false);
mWebView.loadUrl(url);
}
@Override
public void onPageStarted(String url, Bitmap favicon) {
dialog.show();
}
@Override
public void onPageFinished(String url) {
dialog.dismiss();
}
@Override
public void onDownloadRequested(String url, String suggestedFilename, String mimeType, long contentLength, String contentDisposition, String userAgent) {
}
@Override
public void onExternalPageRequest(String url) {
}
@Override
public void onPageError(int errorCode, String description, String failingUrl) {
}
我的 compileSdkVersion 是 26,minSdkVersion 是 17,targetSdkVersion 是 22。我正在Android 8.0 API 26 上测试此代码。
我们将非常感谢您在这方面的任何帮助。
【问题讨论】:
-
也许如果你能提供更多关于你在哪里以及如何使用它的上下文,你可能会得到答案。我今天早些时候遇到了同样的问题,我正在测试 API 22。我的问题不是
SafeBrowsingResponse类,而是传递了错误的文件路径(我使用本地文件进行了测试)。
标签: java android android-layout webview