为什么Webview第一次启动会崩溃?
在我的 Android 应用程序中,当我创建一个新的模拟器并第一次尝试在 webview 中写入时,它不处于活动状态。我无法在文本字段中写入,然后应用程序崩溃。如果我重新加载应用程序一切正常。
代码:
String url = "http://api.vkontakte.ru/oauth/authorize?client_id=2731649&scope=wall,notify,docs&" +
"redirect_uri=http://api.vkontakte.ru/blank.html&display=wap&response_type=token";
WebViewClass wvClforVK = new WebViewClass();
在oncreate中:
webview= (WebView) findViewById(R.id.vkWebView);
webview.setWebViewClient(wvClforVK);
在buttonclick上:
webview.loadUrl(url);
in wvClforVK
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
In my Android app, when I create a new emulator and try to write in webview for the first time, it's not active. I can't write in textfield and then the app crashes. If I reload the app all works OK.
Code:
String url = "http://api.vkontakte.ru/oauth/authorize?client_id=2731649&scope=wall,notify,docs&" +
"redirect_uri=http://api.vkontakte.ru/blank.html&display=wap&response_type=token";
WebViewClass wvClforVK = new WebViewClass();
In oncreate:
webview= (WebView) findViewById(R.id.vkWebView);
webview.setWebViewClient(wvClforVK);
On buttonclick:
webview.loadUrl(url);
in wvClforVK
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须在尝试使用任何组件(例如 R.id.vkWebView)之前设置内容视图。如果在设置内容视图之前使用
findViewById(...)
,它将返回null。要设置内容视图调用...
...假设您的布局文件名为
main.xml
但在使用 R.layout 时没有将 .xml 部分放在上面。通常,您会尽可能早地在 Activity 的onCreate(...)
方法中设置内容视图。这通常在调用super.onCreate(...);
后立即完成You must set the content view BEFORE attempting to use any components such as your R.id.vkWebView. If you use
findViewById(...)
before setting content view, it will return null.To set the content view call...
...assuming your layout file is called
main.xml
but you don't put the .xml part on it when using R.layout. Usually you will set the content view as early in an activity'sonCreate(...)
method as possible. This is often done immediately after the call tosuper.onCreate(...);
对于安卓4.2.2,
在开始加载所需的 URL 之前添加 loadUrl("about:blank")。
所以,最终的代码是
在添加
loadUrl("about:blank")
之前,当我在 android 4.2.2 上运行我的应用程序时,每次我的 webview 尝试加载 Url 时都会崩溃。For android 4.2.2,
Add loadUrl("about:blank") before you start loading your desired URL.
So,the final code is
Before adding
loadUrl("about:blank")
, when i run my app on android 4.2.2 crash everytime my webview try to load Url.