Android 在姜饼设备上运行应用程序时,WebView崩溃
我是android的初学者,我的应用程序在调试模式下运行,但运行时会崩溃。Android 在姜饼设备上运行应用程序时,WebView崩溃,android,android-webview,Android,Android Webview,我是android的初学者,我的应用程序在调试模式下运行,但运行时会崩溃。 这是我的代码。 我正在尝试在webview中打开第三方应用程序。 该应用程序使用javascript,并在Android 2.3姜饼上使用 public class Classname extends Activity { WebView webView; String realm; String username; String password; String host;
这是我的代码。
我正在尝试在webview中打开第三方应用程序。
该应用程序使用javascript,并在Android 2.3姜饼上使用
public class Classname extends Activity
{
WebView webView;
String realm;
String username;
String password;
String host;
public String pwd;
@Override
public void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.webpage);
super.onCreate(savedInstanceState);
webView = (WebView)findViewById(R.id.browser);
//final WebPage webpage=new WebPage(webView);
//webView.getSettings().setJavaScriptEnabled(true);
webView.setVerticalScrollbarOverlay(true);
//call url from database
ClassName.geturl(getContext(), new Callback<String>(getContext()){
@Override
public void onCompleted(String value) {
super.onCompleted(value);
try
{
JSONObject respObj = new JSONObject(value);
String apserver = respObj.getString("value");
//webView.loadUrl("http://yahoo.com");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient( new WebViewClient(){
//passing username and pasword
public void onReceivedHttpAuthRequest (WebView view,HttpAuthHandler handler, String host,String realm){
final String uname=App.getConfig().getUid();
try {
pwd = EncryptDecrypt.decrypt(function.getPassword());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.proceed(uname, pwd);
}}
);
webView.loadUrl("application");
;}
catch(Exception e)
{
}
return;
}
});
}
}
公共类类名扩展活动
{
网络视图;
字符串域;
字符串用户名;
字符串密码;
字符串主机;
公共字符串pwd;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
setContentView(R.layout.webpage);
super.onCreate(savedInstanceState);
webView=(webView)findviewbyd(R.id.browser);
//最终网页=新网页(webView);
//webView.getSettings().setJavaScriptEnabled(true);
webView.setverticalscrollboroverlay(true);
//从数据库调用url
ClassName.geturl(getContext(),新回调(getContext()){
@凌驾
未完成的公共void(字符串值){
超级。未完成(值);
尝试
{
JSONObject respObj=新的JSONObject(值);
String apserver=respObj.getString(“值”);
//webView.loadUrl(“http://yahoo.com");
webView.getSettings().setJavaScriptEnabled(true);
setWebViewClient(新的WebViewClient(){
//传递用户名和密码
public void onReceivedHttpAuthRequest(WebView视图、HttpAuthHandler处理程序、字符串主机、字符串域){
最后一个字符串uname=App.getConfig().getUid();
试一试{
pwd=EncryptDecrypt.decrypt(function.getPassword());
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
处理程序。继续(uname,pwd);
}}
);
webView.loadUrl(“应用程序”);
;}
捕获(例外e)
{
}
返回;
}
});
}
}
日志:
12-20 13:34:17.160: E/AndroidRuntime(10452): FATAL EXCEPTION: WebViewCoreThread
12-20 13:34:17.160: E/AndroidRuntime(10452): java.lang.IllegalArgumentException: Method name may not be null
12-20 13:34:17.160: E/AndroidRuntime(10452): at org.apache.http.message.BasicHttpRequest.<init>(BasicHttpRequest.java:57)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.net.http.Request.<init>(Request.java:123)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.net.http.RequestQueue.queueRequest(RequestQueue.java:333)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.webkit.Network.requestURL(Network.java:191)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.webkit.LoadListener.doRedirect(LoadListener.java:1371)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.webkit.LoadListener.handleMessage(LoadListener.java:236)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.os.Handler.dispatchMessage(Handler.java:99)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.os.Looper.loop(Looper.java:123)
12-20 13:34:17.160: E/AndroidRuntime(10452): at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:629)
12-20 13:34:17.160: E/AndroidRuntime(10452): at java.lang.Thread.run(Thread.java:1019)
12-20 13:34:17.160:E/AndroidRuntime(10452):致命异常:WebViewCoreThread
12-20 13:34:17.160:E/AndroidRuntime(10452):java.lang.IllegalArgumentException:方法名不能为null
12-20 13:34:17.160:E/AndroidRuntime(10452):在org.apache.http.message.basichttrequest.(basichttrequest.java:57)
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.net.http.Request(Request.java:123)上
12-20 13:34:17.160:E/AndroidRuntime(10452):位于android.net.http.RequestQueue.queueRequest(RequestQueue.java:333)
12-20 13:34:17.160:E/AndroidRuntime(10452):位于android.webkit.Network.requestURL(Network.java:191)
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.webkit.LoadListener.doRedirect(LoadListener.java:1371)
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.webkit.LoadListener.handleMessage(LoadListener.java:236)
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.os.Handler.dispatchMessage(Handler.java:99)上
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.os.Looper.loop(Looper.java:123)
12-20 13:34:17.160:E/AndroidRuntime(10452):在android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:629)
12-20 13:34:17.160:E/AndroidRuntime(10452):在java.lang.Thread.run(Thread.java:1019)
关于这个问题,Android主项目上有一个bug报告。但是没有关于如何解决这个问题的细节。你在多部手机上测试过你的代码吗@ethan,它在模拟器、平板电脑和我的手机上工作。在一台2.3.1设备上,webview崩溃时有发生。我添加了webview.getSettings().setDomStorageEnabled(true),它确实减少了崩溃的数量。该设备内存非常低,您认为这可能会导致问题吗。如果我的代码有什么问题,请告诉我。这个问题需要在操作系统级别解决。仔细查看错误日志后:12-20 13:34:17.160:E/AndroidRuntime(10452):java.lang.IllegalArgumentException:方法名称不能为null。查看源代码后,我们发现Apache中存在错误。