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

下载失败是什么原因?没有返回错误 #4

Closed
ZhangZhiH opened this issue Apr 28, 2022 · 9 comments
Closed

下载失败是什么原因?没有返回错误 #4

ZhangZhiH opened this issue Apr 28, 2022 · 9 comments

Comments

@ZhangZhiH
Copy link

下载失败是什么原因?没有返回错误

@ZhangZhiH
Copy link
Author

目前我是因为下载的途中返回到了上一页 然后就下载失败了..然后再调用下载任务 会一直下载失败..获取文件路径还是空

@ZhangZhiH
Copy link
Author

通过清除全部后再下载 也会报错 ALDownloader.removeAll();
但是重启APP后下载就可以了

@jackleemeta
Copy link
Owner

jackleemeta commented Apr 28, 2022

你好,谢谢反馈

下载状态不更新目前可能是因为:

  1. 异步方法需要加await修饰
  2. 在调试模式下,通过某些IDE(如Xcode)终止调试杀掉进程不会触发terminate通知,导致一些状态不更新;但通过用户行为杀掉app无问题

如果上面原因可以排除,提供一下下面的信息,进一步排查:

  1. package版本号
  2. 哪个原生平台
  3. 原生SDK版本(如iOS15.4)
  4. 调用的代码片段;特别是退出页面时关于下载的代码片段
  5. 异常时al_downloader最近的一些log信息

@ZhangZhiH
Copy link
Author

ZhangZhiH commented Apr 29, 2022

你好,谢谢反馈

下载状态不更新目前可能是因为:

  1. 异步方法需要加await修饰
  2. 在调试模式下,通过某些IDE(如vscode)终止调试杀掉进程不会触发terminate通知,导致一些状态不更新;但通过用户行为杀掉app无问题

如果上面原因可以排除,提供一下下面的信息,进一步排查:

  1. package版本号
  2. 哪个原生平台
  3. 原生SDK版本(如iOS15.4)
  4. 调用的代码片段;特别是退出页面时关于下载的代码片段
  5. 异常时al_downloader最近的一些log信息

1 al_downloader: ^1.2.7
2 Flutter IOS 12.5.5
4
`static Future download({
required Audio audio,
required Function(String progress) progressHandler,
required Function(String? path) successHandler,
}) async {
final isExist = await ALDownloaderPersistentFileManager
.isExistAbsolutePhysicalPathOfFileForUrl(audio.path);
if (isExist) return;

Toast.show("已加入下载");
await ALDownloader.download(audio.path,
    downloaderHandlerInterface:
        ALDownloaderHandlerInterface(progressHandler: (progress) {
      progressHandler((progress * 100).truncate().toString() + "%");
    }, successHandler: () async {
      Toast.show("下载完成");
      successHandler(await ALDownloaderPersistentFileManager
          .getAbsoluteVirtualPathOfFileWithUrl(audio.path));
    }, failureHandler: () {
      Toast.showError("下载失败,请重启APP后重试");
      ALDownloader.remove(audio.path);
    }, pausedHandler: () {
      Toast.show("暂停中");
    }));

}`

当 我通过上面方法下载后
执行ALDownloader.removeAll() 之后 在调用 download方法 会直接返回failureHandler回调 只有重启APP后才会正常
5.不返回任何错误日志 直接回调的failureHandler方法

@ZhangZhiH
Copy link
Author

这几天查阅了官方的文档 发现是官方插件的bug 下载后删除重新下载会失败
楼主代码封装的很好我基本都拿下来 全看完了. 官方插件bug太多..可能不太适合我
感谢楼主

@jackleemeta
Copy link
Owner

这几天查阅了官方的文档 发现是官方插件的bug 下载后删除重新下载会失败
楼主代码封装的很好我基本都拿下来 全看完了. 官方插件bug太多..可能不太适合我
感谢楼主

fluttercommunity/flutter_downloader#637
原因应该是找到了,提了pr,等作者处理吧。

@ZhangZhiH
Copy link
Author

ZhangZhiH commented May 12, 2022 via email

@ZhangZhiH
Copy link
Author

这几天查阅了官方的文档 发现是官方插件的bug 下载后删除重新下载会失败
楼主代码封装的很好我基本都拿下来 全看完了. 官方插件bug太多..可能不太适合我
感谢楼主

fluttercommunity/flutter_downloader#637 原因应该是找到了,提了pr,等作者处理吧。

ok 看到了 之前用官方代码也有这个问题我去官方查了一下 确实大家都遇到了

@jackleemeta
Copy link
Owner

这几天查阅了官方的文档 发现是官方插件的bug 下载后删除重新下载会失败
楼主代码封装的很好我基本都拿下来 全看完了. 官方插件bug太多..可能不太适合我
感谢楼主

fluttercommunity/flutter_downloader#637 原因应该是找到了,提了pr,等作者处理吧。

ok 看到了 之前用官方代码也有这个问题我去官方查了一下 确实大家都遇到了

flutter_downloader作者已merge了pr#637#635,并发布了1.7.4版本。

al_downloader发布了1.3.0版本,包含对flutter_downloader1.7.4版本的依赖。

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

No branches or pull requests

2 participants