OkHttp's NullPointerException in HttpUrl.class

简介: 1 java.lang.RuntimeException:Unable to resume activity {com.xxxx.center/com.xxxx.
1 java.lang.RuntimeException:Unable to resume activity {com.xxxx.center/com.xxxx.center.activity.LoadActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
2 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3284)
3 ......
4 java.lang.NullPointerException:Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
5 okhttp3.HttpUrl.canonicalize(HttpUrl.java:1612)
6 okhttp3.FormBody$Builder.add(FormBody.java:110)
7 com.xxx.http.okhttp.request.PostFormRequest.addParams(PostFormRequest.java:125)
8 com.xxx.http.okhttp.request.PostFormRequest.buildRequestBody(PostFormRequest.java:40)
9 com.xxx.http.okhttp.request.OkHttpRequest.generateRequest(OkHttpRequest.java:70)
10 com.xxx.http.okhttp.request.RequestCall.generateRequest(RequestCall.java:79)
11 com.xxx.http.okhttp.request.RequestCall.buildCall(RequestCall.java:55)
12 com.xxx.http.okhttp.request.RequestCall.execute(RequestCall.java:84)
13 com.xxx.center.utils.HttpUtils.post(HttpUtils.java:45)
14 com.xxx.center.manager.AppBuessinesManager.serverInit(AppBuessinesManager.java:74)
15 com.xxx.center.activity.LoadActivity.onResume(LoadActivity.java:302)
16 android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1267)
17 android.app.Activity.performResume(Activity.java:6567)
18 android.app.ActivityThread.performResumeActivity(ActivityThread.java:3269)
19 android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3315)
20 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2651)
21 android.app.ActivityThread.access$800(ActivityThread.java:182)
22 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488)
23 android.os.Handler.dispatchMessage(Handler.java:111)
24 android.os.Looper.loop(Looper.java:194)
25 android.app.ActivityThread.main(ActivityThread.java:5766)
26 java.lang.reflect.Method.invoke(Native Method)
27 java.lang.reflect.Method.invoke(Method.java:372)
28 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1059)
29 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:825)

今天测试在小米5.0-6.0的机型中测试发现一个空指针的异常,经过排查后发现OkHttp的请求参数不能为null,这个请求接口会上传当前机型的手机号、ip地址和其他的一些物理参数,当没有获取成功时就返回null,所以对于参数进行判空,否则就赋值为 parameter = “”;

相关文章
|
Kubernetes 测试技术 容器
实践 Fake ClientSet 单元测试
在 Kubernetes 相关的开发中,client-go 是最常用的,对于 client-go 相关的代码我们可以通过 fake ClientSet 来编写单元测试,本文将实践利用 fake ClientSet
1998 0
|
8月前
|
SQL 存储 分布式数据库
分布式存储数据恢复—hbase和hive数据库数据恢复案例
分布式存储数据恢复环境: 16台某品牌R730xd服务器节点,每台服务器节点上有数台虚拟机。 虚拟机上部署Hbase和Hive数据库。 分布式存储故障: 数据库底层文件被误删除,数据库不能使用。要求恢复hbase和hive数据库。
297 12
|
NoSQL 关系型数据库 PHP
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
294 74
|
XML SQL 存储
SpringBoot 系列教程 Mybatis+xml 整合篇
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 本文将通过实例方式,介绍下如何整合 SpringBoot + Mybatis,构建一个支持 CRUD 的 demo 工程
473 0
SpringBoot 系列教程 Mybatis+xml 整合篇
|
存储 分布式计算 大数据
阿里云 EMR 强势助力,与阿里云大数据体系共创辉煌,把握时代热点,开启生态建设之旅
【8月更文挑战第26天】阿里云EMR(Elastic MapReduce)是一种大数据处理服务,与阿里云的多个服务紧密结合,共同构建了完善的大数据生态系统。EMR与对象存储服务(OSS)集成,利用OSS提供可靠、低成本且可扩展的数据存储;与MaxCompute集成,实现深度数据分析和挖掘;还支持数据湖构建服务,加速数据湖的搭建并简化数据管理与分析过程。EMR提供多种编程接口及工具,如Hive、Spark和Flink等,帮助用户高效完成大数据处理任务。
460 2
|
运维 监控 安全
什么是BOT+EPC模式?有哪些优点和缺点?适用于哪些领域和场景?
BOT + EPC 模式结合了建设-经营-转让(BOT)和设计-采购-施工(EPC)两种模式,项目公司负责融资、设计、采购、施工及运营,旨在减轻政府财政压力,提高项目建设和运营效率,促进技术创新和管理创新,推动基础设施建设和经济发展。该模式广泛应用于高速公路、城市轨道交通、污水处理厂等大型基础设施项目,通过特许经营协议明确各方权利义务,确保项目顺利实施和移交。
|
搜索推荐 C语言
【C/排序算法】:快速排序和归并排序的非递归实现
【C/排序算法】:快速排序和归并排序的非递归实现
202 0
|
Shell
grep 搜索当前文件夹下的所有子文件中的文件是否包含8888字符串的命令
要在当前文件夹及其所有子文件夹中的文件中搜索包含字符串 "8888" 的文件,你可以使用 grep 命令结合 -r 或 -R 选项(表示递归搜索)。这里是具体的命令: bash grep -r "8888" . 其中: -r 或 -R:递归搜索。 "8888":你要搜索的字符串。 .:表示当前目录。 这个命令会列出所有包含字符串 "8888" 的文件的名称以及匹配的行。如果你只想看到文件名,而不看具体的匹配行,可以加上 -l 选项: bash grep -rl "8888" . 这样,命令只会输出包含字符串 "8888" 的文件名。
246 1
|
开发框架 算法 前端开发
深入理解操作系统:进程管理与调度策略移动应用开发的未来:跨平台框架与原生系统的协同进化
【4月更文挑战第30天】 本文旨在探讨操作系统中的核心机制之一 —— 进程管理,并详细分析不同的进程调度策略。通过对操作系统中进程概念的剖析,我们揭示了进程状态、进程控制块(PCB)以及进程调度器的重要性。文章进一步对比了几种常见的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)、轮转调度(RR),以及多级反馈队列(MLQ),并讨论了它们在不同应用场景下的性能表现。最后,文章还涉及了现代操作系统中对于多核处理器和实时系统所采用的特殊调度考虑。 【4月更文挑战第30天】 在移动设备日益成为人们日常生活与工作不可或缺的组成部分时,移动应用的开发和维护也变得愈加重要。本文将探讨移动应用
|
JavaScript 前端开发
Node.js:file-type检测文件类型
Node.js:file-type检测文件类型
525 0