Logcat이 오류와 함께 충돌합니다 : 예기치 않은 EOF


87

나는 몇 가지 긴 계산을 실행하고 있는데 뭔가가 꽤 늦게 잘못되었습니다. 중단 점을 사용해 보았지만 지금까지 성공하지 못했습니다. 그래서 Log.d모니터링하기 위해 루프에 넣었습니다 .

그러나 곧 Logcat은 다음과 충돌합니다.

02-08 16:35:42.820 2936-3402/com.nohkumado.geneticsolving.full D/BaseC: 
    norm:BC sq:49.0 dis:0.0 con:50.0/BC sq:56.0 dis:4.0 con:94.0=1.4069148936170213

    read: unexpected EOF!

    --------- beginning of crash

Logcat을 다시 실행하려면 스튜디오를 다시 시작해야합니다.

Logcat의 버퍼 크기에 대한 설정을 찾을 수 있는지 살펴 보았지만 지금까지 아무것도 찾지 못했습니다. 무엇을 할 수 있습니까?


1
질문자는 관련없는 두 가지를 결합합니다. '비정상 종료 시작'메시지는 logcat이 아니라 Android 앱이 중단되었음을 의미합니다. "읽기 : 예기치 않은 EOF!" 실제로는 logcat 프로세스에서 나오며 logcat 프로세스가 logd 프로세스와의 연결이 끊어 졌음을 나타냅니다.
satur9nine

음, 응용 프로그램이 충돌하지 않았다, 그것은 단지 수렴되지 않았습니다 ....하지만 난 때문에 ..... 로그 캣의 버퍼 제한을 볼 수 없었다
노 Kumado

답변:


100

설정 시도 로거는 크기를 버퍼오프 에서 -> 설정 - 개발자 옵션 에, 당신의기기 / 에뮬레이터의 . 이는 로거 버퍼 가 특정 시간에만 제한된 KB의 로그를 표시하도록 구성 되었기 때문에 발생할 수 있습니다 . 다음 로그 세트는 이전 버퍼가 지워진 경우에만 표시됩니다.


2
실제로 태블릿 쪽의 logcat은 고정 길이였습니다!
Noh Kumado

10
나는 그것을 껐다가 이제는 로그를 전혀 볼 수 없습니다. (삼성 노트 8). 나는 이것이 모든 사람을위한 해결책이라고 생각하지 않습니다
behelit

1
나는 그것을 껐지만 여전히 질문 시작으로 오류가 발생했습니다.
Nisim Naim

이것은 나를 위해 일했습니다 (에뮬레이터 사용). 문제는 최근에 시작되었습니다.
Lassi Kinnunen

이것은 승인 된 대답이 아니어야합니다. 실제 장치에서 버퍼를 끄는 대신 버퍼가 고갈되지 않도록 늘리는 것이 좋습니다. 기기에 따라 다를 수 있지만 Android OS 버전에 따라 다릅니다.
Sergey Dryganets

138

더 완전한 답변

받아 들인 대답이 저에게 효과가 없었습니다. 로거 버퍼를 끄는 대신 최대 크기로 늘 렸습니다.

  1. 아직 활성화되지 않은 경우 에뮬레이터 또는 장치 ( Android Studio 아님) 에서 개발자 옵션 활성화 : 에뮬레이터 또는 장치에서 설정> 시스템> 정보 (에뮬레이션 된 장치) 로 이동하고 빌드 번호를 클릭합니다. 7 번 .
  2. 이동 설정> 시스템> 개발자 옵션> 로거는 크기 버퍼 및 높은 값을 선택합니다.

여기에 이미지 설명 입력

  1. 에뮬레이터도 다시 시작해야했습니다.

따라서 원래 문제는 장치 로그 버퍼가 긴 로깅으로 가득 차기 때문에 분명히 발생합니다. 버퍼 크기를 늘리면 단일 로깅 세션에서 더 많이 로깅 할 수 있습니다.


1
이것을 사용하면 정상적인 근무일에 문제를 피할 수 있습니다. 저에게는 예외가 있습니다. 블루투스 장치가 많은 환경에서 삼성 전화를 사용하는 것입니다. 삼성은 모든 Bluetooth 스캔을 시스템 수준에서 기록하기로 결정했으며 16M으로는 충분하지 않습니다. 주변에 30 개 이상의 블루투스 장치가있는 경우에도 하루에 4 ~ 5 회 정도 발생합니다.
reTs

logd 버퍼는 링 버퍼이므로 크기를 변경해도 logcat과 logd 간의 연결이 끊어 졌는지 여부에 측정 가능한 영향이 없어야합니다. 그것이하는 일은 로깅 히스토리가 메모리에 얼마나 많은지를 변경하는 것입니다. 이것이 문제를 해결할 가능성은 거의 없습니다.
satur9nine 19

1
@ satur9nine, 기본 수준에서 문제를 해결했는지 여부는 말할 수 없지만 충돌을 방지하고 더 많은 로그 메시지를 표시 할 수 있다는 점에서 문제가 해결되었습니다.
Suragch

한 Moto G5 Plus에서 다른 Moto G5 Plus로 TWRP 백업을 전송 한 후 내 logcat 버퍼는 몇 달 전의 일부 이벤트, 오늘의 일부 이벤트, read: unexpected EOF!. 16M으로 늘리면 문제가 해결되고 몇 달이 지난 이벤트가 사라졌습니다.
nyanpasu64

18

개발자 옵션에서 로거 버퍼 크기를 최대 16M로 설정할 수 있습니다.
(설정> 시스템> 개발자 옵션> 로거 버퍼 크기)

더 필요한 경우 adb를 사용하여 설정할 수 있습니다. 예를 들어 100M으로 설정할 수 있습니다.

adb logcat -G 100M

7

게시 한이 로그는 logcat이 아니라 앱 충돌을 나타냅니다 (스택 트레이스의 일반적인 방식은 아니지만 충돌이 발생 함). 앱을 선택하고 필터를 logcat에서 "선택한 애플리케이션 표시"로 설정 했습니까? 그렇다면 필터를 "필터 없음"으로 설정하면 앱의 모든 로그가 표시됩니다.

또한 어떤 이유로 든 logcat을 다시 시작해야하는 경우 Android 스튜디오를 다시 시작하는 대신 다음 명령을 실행하여 adb를 다시 시작하고 결국 logcat도 다시 시작할 수 있습니다.

adb kill-server
adb start-server

앱이 계속 작동하는 것 같아서 이상합니다. 나는 계산 자체에 대해 알고 있지만 (따라서 디버깅하고 싶다) 나머지는 작동하고 버튼 등을 클릭하면 예상되는 동작이 계속 발생합니까? 아시아 개발 은행 트릭 unfortunalely ... 실제 시점에 다음 건너 뜁니다되면, 로그 캣을 복원
노 Kumado

나는 긴 계산이 의미하는 바를 생각한 다음 앱이 느리거나 응답하지 않고 충돌한다는 것을 의미하는 무언가가 잘못되었습니다. 앱이 여러 활동으로 구성되어 있습니까? 그리고 오류가 발생하면 이전 활동으로 돌아가는 것과 같습니까? 필터가 모든 로그를 표시하지 않습니까?
ahasbini

아니 앱이 원활하게 실행되는 결과가 예상과 다른 지점에서 예, 여러 활동과 작업자 스레드가 비동기 작업으로 수행되고, 충돌 메시지 이후에는 logcat이 모든 것에 대해 평범한 상태로 유지됩니다 ....
Noh Kumado

3

실제 전화에서 실행하는 경우 USB에서 전화를 분리하고 연결하십시오 (버퍼가 비워집니다-@Suragch가 제안한 것처럼).


2

버퍼 크기를 변경해도 효과가 없었습니다. USB 연결을 USB 3.0 포트로 변경 한 것은 무엇입니까?


1
훌륭한! 이 힌트에 감사드립니다. 나는 같은 문제가 있었다.
Ethan Leroy

같은 맥락에서 장치와 컴퓨터 사이에있는 USB 허브를 제거하거나 컴퓨터의 다른 USB 포트를 사용해보십시오.
satur9nine 19


1

장치를 다시 시작하십시오! 휴대 전화를 다시 시작한 후 왜 작동하는지 모르겠습니다.



0

불행히도 이것은 여전히 ​​문제인 것 같습니다 . " 로그 뷰어 " 라는 플러그인 ( 파일-> 설정-> 플러그인-> 마켓 플레이스 ) 을 설치하는 것 외에 만족스러운 솔루션을 찾을 수 없습니다 . Android Studio의 내장 된 logcat 뷰어보다 더 잘 작동합니다.


0

권장 사항이 작동하지 않았습니다. 마침내이 기본 설정을 변경했습니다.

메뉴 "실행", 메뉴 항목 "구성 편집", 왼쪽 "Android 앱 / 앱"및 오른쪽 "Michelangelo"탭, 마지막으로 "Logcat : 실행 전 로그 지우기"를 활성화합니다.

물론 이것은 부작용이 있지만 적어도 로그 출력을 다시 볼 수 있습니다.


-1

그냥 이동 파일 -> 무효화 캐시 / 다시 시작 안드로이드 스튜디오 일을 할 수있게된다


나는 이것이 문제 자체에 도움이 될 것이라고 생각하지 않지만 AS 재시작은 logcat을 다시 시작하여 분명히 문제를 해결합니다.
PNDA

@PNDA 왜 안드로이드가 캐시를 확인하고 다시 시작하게하지 않습니까? 어디는 단점이 표시되지 않습니다
익명-E
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.