#android #eclipse #line #logcat
#Android #eclipse #строка #logcat
Вопрос:
Есть ли какой-нибудь способ получить автоматический доступ к любому журналу в Logcat двойным щелчком мыши?
На самом деле, когда возникает ошибка, приводящая к сбою моего приложения Android, я могу дважды щелкнуть строку, в которой говорится, например
at com.myapp.mypackage$Class.function(File.java:117)
И при двойном щелчке по этой строке я автоматически перенаправляюсь на соответствующую строку моего кода.
Но, когда я пытаюсь сгенерировать ту же строку в другом журнале, например :
Log.e("TAG", "at com.myapp.mypackage$Class.function(File.java:117)");
Двойной щелчок больше не работает…
Есть идеи?
Комментарии:
1. Вероятно, вы могли бы
throw
создать исключение из строки, в которой вы получаете проблему.. Но это также остановило бы вашу программу2. Это потому, что редактор обрабатывает трассировки стека из исключений. В зависимости от кода из редактора это возможно только в том случае, если создатель IDE сопоставляет строку в журнале с реальным файлом в вашем проекте.
3. Если вы используете eclipse, вы можете использовать «Консоль Stacktrace» .
Ответ №1:
Если вы хотите создать журнал в logcat, на который можно щелкнуть и перейти к вашей строке, используйте следующий метод для его создания:
Наслаждайтесь!
public static void showLogCat(String tag, String msg) {
StackTraceElement[] stackTraceElement = Thread.currentThread()
.getStackTrace();
int currentIndex = -1;
for (int i = 0; i < stackTraceElement.length; i ) {
if (stackTraceElement[i].getMethodName().compareTo("showLogCat") == 0)
{
currentIndex = i 1;
break;
}
}
String fullClassName = stackTraceElement[currentIndex].getClassName();
String className = fullClassName.substring(fullClassName
.lastIndexOf(".") 1);
String methodName = stackTraceElement[currentIndex].getMethodName();
String lineNumber = String
.valueOf(stackTraceElement[currentIndex].getLineNumber());
Log.i(tag, msg);
Log.i(tag " position", "at " fullClassName "." methodName "("
className ".java:" lineNumber ")");
}
Ответ №2:
Если вы не возражаете против беспорядка в вашем журнале, вы можете легко просто добавить new Exception()
в сообщение журнала
Log.e("TAG", "Looky here see", new Exception());
Комментарии:
1. Спасибо за совет, это довольно эффективно, и я действительно не возражаю против загромождения моего журнала.