Я испытываю (на мой взгляд) действительно странную проблему. У меня есть Android Project в Android Studio, содержащий следующий код:Android skipping code
if(AppSettings.isNetworkAvailable(context, showDialog)) {
return null;
}
else {
HttpResponse httpResponse = null;
AsyncHttpGet asyncHttpGet = new AsyncHttpGet(mHttpClient, mHttpContext);
String url = BASE_URI + atPath;
asyncHttpGet.execute(url);
try {
httpResponse = asyncHttpGet.get();
System.out.println("Response: " + httpResponse);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
if(isAccepted(httpResponse)) {
return httpResponse;
} else {
return null;
}
}
Этот код возвращает нуль во время выполнения и не дает никакого выхода. Курсор отладчика переходит из первого if-предложения (который возвращает true) непосредственно к последнему оператору return без объявления или инициализации любой из переменных.
Я также попытался удалить остальное, поскольку он должен работать без него, но это не имеет значения. Кто-нибудь есть идея, где проблема может быть?
EDIT: Я должен добавить: код работает отлично, без исходного if-предложения и возвращает действительный HttpResponse.
вы пропустили один оператор возврата – Blackbelt
Спасибо, что на самом деле была «проблема»! 3 парня, 1 час отладки, и никто не видел этого ... Я думаю, что отладчик прыгал был только из-за некоторой оптимизации операторов возврата. –