fuel
fuel copied to clipboard
Downloading crashes when network quality is bad
Bug Report
Description
Download crash.
To Reproduce
This crash will occur when network quality is bad. The connecting timeout is very long.
fun downloadApk(
url: String,
fileName: String,
progressCallback: ProgressCallback,
success: (ByteArray) -> Unit,
failure: (FuelError) -> Unit
) {
url.httpDownload()
.fileDestination { _, _ ->
clearFolder(MyApplication.getApkDir())
MyApplication.getApkDir().mkdirs()
File(MyApplication.getApkDir(), fileName)
}
.responseProgress(progressCallback)
.awaitByteArrayResult().fold(success, failure)
}
Environment
Development Machine
- OS: [Windows 10]
- IDE: [Android Studio 3.5.2]
- Fuel version: [2.2.1]
- Kotlin version: [1.3.61]
Smartphone or Emulator
- Device: [Yeshen Emulator]
- OS: [Android 5.1]
Additional context
11-29 20:38:48.469 3028-3039/net.imknown.android.forefrontinfo E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
java.lang.Throwable: Explicit termination method 'close' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:184)
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:287)
at com.android.okhttp.Connection.upgradeToTls(Connection.java:201)
at com.android.okhttp.Connection.connect(Connection.java:155)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)
at com.github.kittinunf.fuel.toolbox.HttpClient.sendRequest(HttpClient.kt:135)
at com.github.kittinunf.fuel.toolbox.HttpClient.doRequest(HttpClient.kt:78)
at com.github.kittinunf.fuel.toolbox.HttpClient.access$doRequest(HttpClient.kt:28)
at com.github.kittinunf.fuel.toolbox.HttpClient.awaitRequest(HttpClient.kt:66)
at com.github.kittinunf.fuel.core.requests.SuspendableRequest.executeRequest(SuspendableRequest.kt:21)
at com.github.kittinunf.fuel.core.requests.SuspendableRequest.awaitResult(SuspendableRequest.kt:40)
at com.github.kittinunf.fuel.core.DeserializableKt.awaitResult(Deserializable.kt:240)
at net.imknown.android.forefrontinfo.GatewayApi$Companion$downloadApk$$inlined$awaitByteArrayResult$1.invokeSuspend(Coroutines.kt:43)
at net.imknown.android.forefrontinfo.GatewayApi$Companion$downloadApk$$inlined$awaitByteArrayResult$1.invoke(Coroutines.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:91)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:156)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at net.imknown.android.forefrontinfo.GatewayApi$Companion.downloadApk$app_debug(GatewayApi.kt:99)
at net.imknown.android.forefrontinfo.ui.settings.SettingsFragment.downloadApk(SettingsFragment.kt:296)
at net.imknown.android.forefrontinfo.ui.settings.SettingsFragment$showDownloadConfirmDialog$1$1$1.invokeSuspend(SettingsFragment.kt:258)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:241)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594)
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:740)
11-29 20:38:48.469 3028-3039/? W/System.err: StrictMode VmPolicy violation with POLICY_DEATH; shutting down.
11-29 20:38:48.469 3028-3039/? I/Process: Sending signal. PID: 3028 SIG: 9