@Override
public void onDestroy() {
Log.d(TAG, "onDestroy");
super.onDestroy();
if (mLocationManager != null) {
for (int i = 0; i < mLocationListeners.length; i++) {
try {
mLocationManager.removeUpdates(mLocationListeners[i]);
} catch (Exception ex) {
Log.d(TAG, "fail to remove location listners, ignore", ex);
}
}
}
}
Я не думаю, что вы сможете, не изменяя его код, но поскольку это питон ...
Если вы посмотрите, где он вызывает исключение для пользователя, я думаю, что это можно вставить туда информацию, которую вы ищете ... Я не ожидал, что вы сможете получить обратную трассировку лучше, потому что код фактически содержится в блоке комментариев, а затем обрабатывается.
Код довольно сложный, но это может быть блок, на который стоит взглянуть - может быть, если вы выгрузите некоторые из аргументов, вы сможете понять, что происходит ...
def _check_preconditions(a, func, va, ka):
# ttw006: correctly weaken pre-conditions...
# ab002: Avoid generating AttributeError exceptions...
if hasattr(func, '__assert_pre'):
try:
func.__assert_pre(*va, **ka)
except PreconditionViolationError, args:
# if the pre-conditions fail, *all* super-preconditions
# must fail too, otherwise
for f in a:
if f is not func and hasattr(f, '__assert_pre'):
f.__assert_pre(*va, **ka)
raise InvalidPreconditionError(args)
# rr001: raise original PreconditionViolationError, not
# inner AttributeError...
# raise
raise args
# ...rr001
# ...ab002
# ...ttw006