问题分析:
根据Android官方文档,当方法接收到了一个不合法或不正确的参数时会抛出此类异常。
解决方案:
因为参数不合法导致抛出IllegalArgumentException,请根据堆栈信息描述的出错的函数参数,按照要求传入正确的参数。
代码示例:
- [backcolor=transparent] [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] getUserAgent[backcolor=transparent]([backcolor=transparent]Context[backcolor=transparent] context[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]{
- [backcolor=transparent] [backcolor=transparent]WebView[backcolor=transparent] webview [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]new[backcolor=transparent] [backcolor=transparent]WebView[backcolor=transparent]([backcolor=transparent]context[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]WebSettings[backcolor=transparent] settings [backcolor=transparent]=[backcolor=transparent] webview[backcolor=transparent].[backcolor=transparent]getSettings[backcolor=transparent]();
- [backcolor=transparent] userAgent [backcolor=transparent]=[backcolor=transparent] settings[backcolor=transparent].[backcolor=transparent]getUserAgentString[backcolor=transparent]();
- [backcolor=transparent] [backcolor=transparent]Log[backcolor=transparent].[backcolor=transparent]i[backcolor=transparent]([backcolor=transparent]"UserAgent:"[backcolor=transparent] [backcolor=transparent]+[backcolor=transparent] userAgent[backcolor=transparent]);
- [backcolor=transparent] [backcolor=transparent]}
示例一:
- [backcolor=transparent] java[backcolor=transparent].[backcolor=transparent]lang[backcolor=transparent].[backcolor=transparent]IllegalArgumentException[backcolor=transparent]:[backcolor=transparent] HTTP parameters may [backcolor=transparent]not[backcolor=transparent] be [backcolor=transparent]null
- [backcolor=transparent] at org[backcolor=transparent].[backcolor=transparent]apache[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]params[backcolor=transparent].[backcolor=transparent]HttpProtocolParams[backcolor=transparent].[backcolor=transparent]getUserAgent[backcolor=transparent]([backcolor=transparent]HttpProtocolParams[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]150[backcolor=transparent])
- [backcolor=transparent] at org[backcolor=transparent].[backcolor=transparent]apache[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]impl[backcolor=transparent].[backcolor=transparent]client[backcolor=transparent].[backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]isMoMMS[backcolor=transparent]([backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]790[backcolor=transparent])
- [backcolor=transparent] at org[backcolor=transparent].[backcolor=transparent]apache[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]impl[backcolor=transparent].[backcolor=transparent]client[backcolor=transparent].[backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]execute[backcolor=transparent]([backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]563[backcolor=transparent])
- [backcolor=transparent] at org[backcolor=transparent].[backcolor=transparent]apache[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]impl[backcolor=transparent].[backcolor=transparent]client[backcolor=transparent].[backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]execute[backcolor=transparent]([backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]520[backcolor=transparent])
- [backcolor=transparent] at org[backcolor=transparent].[backcolor=transparent]apache[backcolor=transparent].[backcolor=transparent]http[backcolor=transparent].[backcolor=transparent]impl[backcolor=transparent].[backcolor=transparent]client[backcolor=transparent].[backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]execute[backcolor=transparent]([backcolor=transparent]AbstractHttpClient[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]498[backcolor=transparent])
- [backcolor=transparent] at com[backcolor=transparent].[backcolor=transparent]g[backcolor=transparent].[backcolor=transparent]utils[backcolor=transparent].[backcolor=transparent]HttpClientUtil[backcolor=transparent].[backcolor=transparent]post[backcolor=transparent]([backcolor=transparent]HttpClientUtil[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]99[backcolor=transparent])
- [backcolor=transparent] at com[backcolor=transparent].[backcolor=transparent]g[backcolor=transparent].[backcolor=transparent]utils[backcolor=transparent].[backcolor=transparent]LoadDataFromServer$2[backcolor=transparent].[backcolor=transparent]run[backcolor=transparent]([backcolor=transparent]LoadDataFromServer[backcolor=transparent].[backcolor=transparent]java[backcolor=transparent]:[backcolor=transparent]195[backcolor=transparent])
因为参数为空导致获取字符集失败抛出的异常。
在这个例子里,getUserAgent因为userAgent变量为空所以报错。User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。