Я использую баннер MapQuest в своем приложении для Android, и я просто столкнулся с проблемой с одним из методов, требуемых RouteManager.RouteCallback(), который является частью баннера MapQuest.Как я могу уловить исключение NullPointerException из метода? Пример внутри
Метод, предоставляющий мне NullPointerException, является методом onError(), как вы увидите в приведенном ниже коде. Как я могу уловить исключение NullPointerException из этого метода, чтобы приложение не разбилось? Я попытался обернуть весь метод в try/catch, но это не работает, оно дает мне ошибки. Какие-либо предложения? Благодарю.
routeManager.setRouteCallback(new RouteManager.RouteCallback() {
@Override
public void onError(RouteResponse routeResponse) {
Info info = routeResponse.info;
int statusCode = info.statusCode;
StringBuilder message = new StringBuilder();
message.append("Unable to create route.\n").append("Error: ")
.append(statusCode).append("\n").append("Message: ")
.append(info.messages);
Toast.makeText(getApplicationContext(), message.toString(),
Toast.LENGTH_LONG).show();
createRouteButton.setEnabled(true);
}
@Override
public void onSuccess(RouteResponse routeResponse) {
clearButton.setVisibility(View.VISIBLE);
if (showItineraryButton.getVisibility() == View.GONE
&& showMapButton.getVisibility() == View.GONE) {
showItineraryButton.setVisibility(View.VISIBLE);
}
createRouteButton.setEnabled(true);
}
});
}
Трассировка стека:
01-11 14:26:51.296: E/AndroidRuntime(343): FATAL EXCEPTION: main
01-11 14:26:51.296: E/AndroidRuntime(343): java.lang.NullPointerException: println needs a message
01-11 14:26:51.296: E/AndroidRuntime(343): at android.util.Log.println_native(Native Method)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.util.Log.e(Log.java:230)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.mapquest.android.maps.RouteManager.handleResponse(RouteManager.java:393)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.mapquest.android.maps.RouteManager.access$400(RouteManager.java:59)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.mapquest.android.maps.RouteManager$RouteTask.onPostExecute(RouteManager.java:648)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.mapquest.android.maps.RouteManager$RouteTask.onPostExecute(RouteManager.java:611)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.os.AsyncTask.finish(AsyncTask.java:417)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.os.AsyncTask.access$300(AsyncTask.java:127)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.os.Handler.dispatchMessage(Handler.java:99)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.os.Looper.loop(Looper.java:123)
01-11 14:26:51.296: E/AndroidRuntime(343): at android.app.ActivityThread.main(ActivityThread.java:3683)
01-11 14:26:51.296: E/AndroidRuntime(343): at java.lang.reflect.Method.invokeNative(Native Method)
01-11 14:26:51.296: E/AndroidRuntime(343): at java.lang.reflect.Method.invoke(Method.java:507)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-11 14:26:51.296: E/AndroidRuntime(343): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-11 14:26:51.296: E/AndroidRuntime(343): at dalvik.system.NativeStart.main(Native Method)
Какую ошибку вы получаете, когда вы заверните его –
Какую ошибку.? вы получаете, когда обертываете всю внутреннюю часть функции с помощью try/catch? – nmjohn
Можете ли вы вставить в pastebin значение nullpointerexception? – beta0x64