[求助] 安卓在用户哪边报了这样一个错,哪位大神给看看!

2017-01-18 14:30:37 +08:00
 sighforever

这个错误导致 app 崩溃了,但是并没有执行我们的代码。 不知道怎么办了,而且不止一个用户有这个问题

java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.server.job.controllers.JobStatus.getUid()' on a null object reference at android.os.Parcel.readException(Parcel.java:1608) at android.os.Parcel.readException(Parcel.java:1555) at android.app.job.IJobCallback$Stub$Proxy.jobFinished(IJobCallback.java:167) at android.app.job.JobService$JobHandler.handleMessage(JobService.java:147) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:150) at android.app.ActivityThread.main(ActivityThread.java:5546) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)

17690 次点击
所在节点    Android
30 条回复
vjnjc
2017-01-18 14:59:32 +08:00
有报错设备信息么?
sighforever
2017-01-18 15:06:39 +08:00
包括什么样的设备信息呢?
我这里记录到的机型有, vivo X7Plus(5.1.1), HUAWEI RIO-AL00(6.0.1), HUAWEI P7-L07(5.1.1),HUAWEI RIO-CL00(6.0.1)
mokechen
2017-01-18 15:27:09 +08:00
明显的空指针错误 这还看不到么
mokechen
2017-01-18 15:28:30 +08:00
发生了空对象引用 在 com.android.server.job.controllers.JobStatus.getUid()这个地方
yuyuyu
2017-01-18 15:31:07 +08:00
我想知道要怎么收集这种崩溃错误信息?
liu37130
2017-01-18 15:38:32 +08:00
这里有个和你的很像的 issue ,会不会有什么启发。。。
https://code.google.com/p/android/issues/detail?id=104302
sighforever
2017-01-18 15:41:12 +08:00
@mokechen 看到了是空指针的

但是 com.android.server.job.controllers.JobStatus. 这个对象是 android 自己产生的,你看他的命名空间和整个的调用堆栈,根本没有我们写的代码啊。

现在的问题就是找不到到底是我们的代码什么地方会引起系统的这个错误。而且这个问题在我们测试机器上都复现不出来,很是郁闷
sighforever
2017-01-18 15:45:00 +08:00
@liu37130 感谢
我也搜到了这个帖子,但是没有回答,这里面每个人都说的是 "我也碰到这个问题了"

我有点怀疑是由于某个第三方库导致的
lawfun
2017-01-18 15:51:23 +08:00
@yuyuyu Fabric , Bugly 都可以
wanttofly
2017-01-18 16:04:16 +08:00
https://github.com/evernote/android-job/issues/92 看到这个 issue 里有提到华为 6.0 的机型,也许你可以试着联系下那个人 https://github.com/tobiasschuerg ,问下他解决了没?
wipen
2017-01-18 16:11:32 +08:00
感觉是系统的 bug ,一般以
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
wipen
2017-01-18 16:13:35 +08:00
感觉是系统的 bug ,一般以
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
这个开头的最后结论是系统问题。

如果是第三方库的原因,应该能够在错误路径中打出第三方库的包和调用。

你还可以试试在项目中搜索 JobStatus 和 JobService 的使用情况。
catror
2017-01-18 16:23:48 +08:00
看一下调用 jobFinished 的地方,感觉是被调用了两次。
bkmi
2017-01-18 17:18:39 +08:00
@wipen Android 所有进程都是从这个方法开始的 ,所有的 crash 最终都会抛到这个方法上,不要乱甩锅
zhibin
2017-01-18 18:11:29 +08:00
恭喜你 , 你可能发现了一个 Android 的 Bug 哦, 猜测是下面这个地方出的错误。这个发生概率多大?

http://androidxref.com/7.1.1_r6/xref/frameworks/base/services/core/java/com/android/server/job/JobServiceContext.java#352


这有一个类似问题:
https://github.com/evernote/android-job/issues/92
id2wander
2017-01-18 18:32:50 +08:00
AlisaDestiny
2017-01-18 21:19:14 +08:00
我今天用 Java 调用 mongodb 也有类似情况。我没有调用连接数据库代码,却给我报了个链接错误。死活找不到根源。
sighforever
2017-01-19 10:18:43 +08:00
@zhibin 感觉也不像是 android 的 bug ,好像上一个版本都没有这个问题呢
唉!就是不知道这个错误到底会不会导致应用崩溃,现在还没有用户抱怨崩溃的问题,但也不好说啊
zhibin
2017-01-19 11:10:35 +08:00
@sighforever 应用是否使用了 JobService / JobScheduler 相关的东西?
从 log 来看应该会导致进程终止。 在我看来是并发导致的问题。
ranbin
2017-01-19 11:50:06 +08:00
Android 5.0(API 21)添加了可以在特定条件下执行后台任务的 JobScheduler 服务,该服务在系统启动过程由 SystemServer 启动,同 ActivityManager 等服务类似该服务在使用的时候貌似也需要通过 Binder 进行进程间通信,而从报错的堆栈信息上看应该是在通信过程中被调用侧也就是 service 处抛出了异常反馈到了调用侧 client 端,感觉如果你的应用中没有使用到该服务,貌似不会出现应用崩溃的问题吧~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335392

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX