Какие наиболее распространенные ситуации ERROR_HTTP_DATA_ERROR могут быть уволены менеджером загрузки?
Не видя никакого кода, это угадывает работу. From the docs:
Если произошла ошибка HTTP, это будет содержать код состояния HTTP, как определено в RFC 2616.
Это даст вам стандартную ошибку HTTP, из которого вы можете найти 6.1.1 Status Code and Reason Phrase. Если у вас есть миллионы загрузок, и это из-за ограниченного количества сайтов, это может быть проблемой, которая выходит за рамки вашего приложения, поскольку серверы веб-сайта могут не справляться с трафиком.
а как насчет отключения сети в середине загрузки?
Проблемы, связанные с подключением к Интернету;
"408" ; Section 10.4.9: Request Time-out
делает это также вызывает ошибку ERROR_HTTP_DATA_ERROR после провала всех менеджер для скачивания в повторных попыток?
Возможно. Для того, чтобы он выдавал этот тип ошибки, он должен быть проблемой с приложением, которое связывается с и/или пытается и/или заканчивает загрузку на веб-сайте.
есть ли какой-либо способ получить от DownloadManager дополнительную информацию о точной ошибке HTTP?
Помимо использования попробовать и уловов и протоколирование ошибок в соответствующих методах, где ваше приложение использует DownloadManager
, а затем проверить и ждет LogCat, когда вы получите эту ошибку, другой вариант был бы удаленным использовать библиотеку или сторонний инструмент для получения удаленных журналов ошибок и отчетов о сбоях вашего развернутого приложения.
Есть много сторонних служб и библиотек, которые предлагают это, я использую одну из авторитетных библиотек с открытым исходным кодом в качестве примера.
Что касается онлайн-регистрации ошибок и сбоев, ACRA является открытым исходным кодом и предоставляет эту функцию. Это использовало для использования продуктов Google для бесплатного хранения отчетов, но по мере увеличения использования Google отменила эту поддержку, однако есть функции, предлагаемые ACRA и другими провайдерами, или вы можете управлять своей собственной отчетностью, но это может повлечь за собой расходы.
Реализация этого в коде приложения относительно проста, создавая класс, который подключается к вашему приложению, расширяя класс приложения и запускаясь с приложением.
import org.acra.*;
import org.acra.annotation.*;
@ReportsCrashes(
formUri = "http://www.backendofyourchoice.com/reportpath"
)
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// The following line triggers the initialization of ACRA
ACRA.init(this);
}
}
Вам также необходимо настроить отчетность на заднем плане, а также подробные сведения о том, как это сделать, по мере увеличения параметров. Более подробную информацию можно найти здесь, BasicSetup.
Этот блог на сыроварню дает детальное представление о настройке и другие варианты онлайн-отчетов об ошибках How to setup ACRA, an Android Application Crash Tracking system, on your own host Application Crash Reports on Android
Это будет означать обновление для вашего приложения, но вы будете иметь, чтобы сделать это в любом случае из звуки этого.
У вас есть какой-то выход logcat, захваченный этой ошибкой? –
нет, я не знаю. потому что, поскольку я получаю эти ошибки от других пользователей с помощью аналитики google. –
Да, я понимаю, надеялся, что у вас может быть несколько тестовых журналов. Я пишу ответ. –