Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SpeedCalculator.endTask()触发了NullPointerException #121

Closed
miraclehen opened this issue Jul 16, 2018 · 5 comments
Closed

SpeedCalculator.endTask()触发了NullPointerException #121

miraclehen opened this issue Jul 16, 2018 · 5 comments
Assignees
Labels

Comments

@miraclehen
Copy link

OkDownload Version

v1.0.3

问题描述

hello。在我项目中,我用OkDownload去下载十多个问题,并且是并行下载,最大并行数为2。我在使用这个库的时候遇到一些问题,当我调用DownloadTask.Cancel()函数时,会触发一个NullPointerException异常。我使用的是监听器为DownloadListener4WithSpeed

日志

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.liulishuo.okdownload.SpeedCalculator.endTask()' on a null object reference
                                                                   at com.liulishuo.okdownload.core.listener.assist.Listener4SpeedAssistExtend.dispatchTaskEnd(Listener4SpeedAssistExtend.java:85)
                                                                   at com.liulishuo.okdownload.core.listener.assist.Listener4Assist.taskEnd(Listener4Assist.java:104)
                                                                   at com.liulishuo.okdownload.core.listener.DownloadListener4.taskEnd(DownloadListener4.java:116)
                                                                   at com.liulishuo.okdownload.core.listener.DownloadListenerBunch.taskEnd(DownloadListenerBunch.java:115)
                                                                   at com.liulishuo.okdownload.core.dispatcher.CallbackDispatcher$DefaultTransmitListener$11.run(CallbackDispatcher.java:367)
                                                                   at android.os.Handler.handleCallback(Handler.java:751)
                                                                   at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                   at android.os.Looper.loop(Looper.java:154)
                                                                   at android.app.ActivityThread.main(ActivityThread.java:6119)
                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
@miraclehen
Copy link
Author

我尝试把okdownload的sample中的队列下载,替换成DownloadListener4WithSpeed,然后开启并行下载,最后点击全部删除按钮。也会触发这个异常。

@SunJenry
Copy link

SunJenry commented Jul 28, 2018

@miraclehen 遇到了同样的问题,如果最大并行数是2,那么在同时下载2个任务时,再打开第三个新的任务,然后在前两个任务没有完成时调用第三个任务的cancel方法就会触发这个问题。监听器同样是DownloadListener4WithSpeed,Log也相同。

@mouness2020
Copy link

mouness2020 commented Aug 21, 2018

yes please fix the problem
cancelling waiting task make app crash

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.liulishuo.okdownload.SpeedCalculator.endTask()' on a null object reference
at com.liulishuo.okdownload.core.listener.assist.Listener4SpeedAssistExtend.dispatchTaskEnd(Listener4SpeedAssistExtend.java:85)
at com.liulishuo.okdownload.core.listener.assist.Listener4Assist.taskEnd(Listener4Assist.java:104)
at com.liulishuo.okdownload.core.listener.DownloadListener4.taskEnd(DownloadListener4.java:116)
at com.liulishuo.okdownload.core.dispatcher.CallbackDispatcher$DefaultTransmitListener$11.run(CallbackDispatcher.java:367)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

@kslr
Copy link

kslr commented Sep 8, 2018

同样有该问题


Family | PGN528
Model | PGN528 (NRD90M)
Architecture | armeabi-v7a
Battery Level | 44%
Orientation | portrait
Memory | Total: 1.8 GB / Free: 426.6 MB
Capacity | Total: 10.1 GB / Free: 2.7 GB
Simulator | false
brand | condor
charging | true
low_memory | false
manufacturer | SPA Condor Electronics
online | true
screen_density | 2
screen_dpi | 320
screen_resolution | 1280x720

Version | 7.0 (PGN528)
Kernel Version | Linux version 3.18.35 (android@COMPILER-22) (gcc version 4.9 20150123 (prerelease) (GCC) ) #1 SMP PREEMPT Tue Oct 10 19:03:24 CST 2017
Rooted | yes

java.lang.NullPointerException: Attempt to invoke virtual method 'void com.liulishuo.okdownload.SpeedCalculator.endTask()' on a null object reference
    at com.liulishuo.okdownload.core.listener.assist.Listener4SpeedAssistExtend.dispatchTaskEnd(Listener4SpeedAssistExtend.java:85)
    at com.liulishuo.okdownload.core.listener.assist.Listener4Assist.taskEnd(Listener4Assist.java:104)
    at com.liulishuo.okdownload.core.listener.DownloadListener4.taskEnd(DownloadListener4.java:116)
    at com.liulishuo.okdownload.UnifiedListenerManager$1.taskEnd(UnifiedListenerManager.java:271)
    at com.liulishuo.okdownload.core.dispatcher.CallbackDispatcher$DefaultTransmitListener.taskEnd(CallbackDispatcher.java:371)
    at com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher.inspectForConflict(DownloadDispatcher.java:492)
    at com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher.inspectForConflict(DownloadDispatcher.java:427)
    at com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher.inspectForConflict(DownloadDispatcher.java:420)
    at com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher.enqueueLocked(DownloadDispatcher.java:153)
    at com.liulishuo.okdownload.core.dispatcher.DownloadDispatcher.enqueue(DownloadDispatcher.java:113)
    at com.liulishuo.okdownload.DownloadTask.enqueue(DownloadTask.java:515)
    at com.liulishuo.okdownload.UnifiedListenerManager.enqueueTaskWithUnifiedListener(UnifiedListenerManager.java:121)
    at com.loadbt.loadbt.MainActivity$GlobalTaskManager.enqueueTask(MainActivity.java:233)
    at com.loadbt.loadbt.MainActivity$1.onDownloadStart(MainActivity.java:176)
    at xf.a(SourceFile:547)
    at afs.handleMessage(SourceFile:25)
    at android.os.Handler.dispatchMessage(Handler.java:110)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6269)
    at java.lang.reflect.Method.invoke(Method.java)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)

@xueshukai
Copy link

同样的问题。。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants