Logcat gặp sự cố với lỗi: EOF không mong muốn


82

Tôi đang chạy một số phép tính dài dòng và đã xảy ra sự cố khá muộn. Tôi đã thử sử dụng các điểm ngắt, nhưng không thành công cho đến nay. Vì vậy, tôi đưa vào vòng lặp a Log.dđể giám sát ...

Nhưng không lâu sau, Logcat gặp sự cố với:

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

và tôi cần khởi động lại studio để Logcat chạy lại.

Tôi đã tìm xem liệu tôi có thể tìm thấy một số cài đặt cho kích thước bộ đệm cho Logcat hay không, nhưng cho đến nay tôi không tìm thấy gì. Những gì có thể được thực hiện?


1
Người hỏi đang kết hợp hai điều không liên quan. Thông báo "bắt đầu gặp sự cố" có nghĩa là một ứng dụng Android bị lỗi, không phải logcat. "Đọc: EOF bất ngờ!" thực sự đến từ quy trình logcat và nó chỉ ra rằng quy trình logcat đã mất kết nối với quy trình logd.
satur9nine

Vâng, ứng dụng đã không sụp đổ, người ta chỉ không hội tụ .... nhưng tôi không thể nhìn thấy nó vì sự hạn chế đệm của logcat .....
Noh Kumado

Câu trả lời:


97

Thử đặt kích thước bộ đệm của Trình ghi nhật ký thành tắt trong Cài đặt-> Tùy chọn nhà phát triển , trên thiết bị / trình mô phỏng của bạn . Điều này có thể xảy ra vì bộ đệm của Trình ghi nhật ký được định cấu hình để hiển thị KB giới hạn của nhật ký chỉ tại một thời điểm cụ thể. Tập hợp các bản ghi tiếp theo sẽ chỉ được hiển thị khi bộ đệm trước đó bị xóa.


2
thực sự, logcat ở phía máy tính bảng, có chiều dài cố định!
Noh Kumado 14/02/18

9
Tôi đã tắt nó đi, bây giờ tôi không thấy bất kỳ bản ghi nào cả. (Samsung Note 8). Tôi không nghĩ đây là giải pháp cho tất cả mọi người
behelit

1
Tôi đã tắt nó đi nhưng tôi vẫn gặp lỗi khi mở câu hỏi.
Nisim Naim

điều này đã làm việc cho tôi (với trình giả lập). vấn đề mới bắt đầu gần đây.
Lassi Kinnunen

Đây không phải là một câu trả lời được chấp thuận, tốt hơn nên tăng bộ đệm để ngăn nó cạn kiệt thay vì tắt nó trên các thiết bị thực. Mặc dù nó có thể phụ thuộc vào thiết bị / phiên bản hệ điều hành Android.
Sergey Dryganets

132

Câu trả lời đầy đủ hơn

Câu trả lời được chấp nhận không phù hợp với tôi. Thay vì tắt bộ đệm ghi nhật ký, tôi đã tăng nó lên kích thước tối đa.

  1. Bật tùy chọn nhà phát triển trong trình mô phỏng hoặc thiết bị của bạn ( không phải Android Studio ) nếu nó chưa được bật: Trong trình mô phỏng hoặc thiết bị của bạn, đi tới Cài đặt> Hệ thống> Giới thiệu (thiết bị giả lập) và nhấp vào Số bản dựng 7 lần.
  2. Đi tới Cài đặt> Hệ thống> Tùy chọn nhà phát triển> Kích thước bộ đệm của trình ghi nhật ký và chọn giá trị cao hơn.

nhập mô tả hình ảnh ở đây

  1. Tôi cũng đã phải khởi động lại trình giả lập.

Vì vậy, vấn đề ban đầu dường như xảy ra do bộ đệm nhật ký thiết bị bị lấp đầy để ghi nhật ký dài. Tăng kích thước bộ đệm cho phép bạn đăng nhập nhiều hơn trong một phiên ghi nhật ký.


1
Sử dụng điều này, tôi có thể tránh được sự cố trong một ngày làm việc bình thường. Có một ngoại lệ đối với tôi: sử dụng điện thoại Samsung trong môi trường có nhiều thiết bị Bluetooth. Samsung đã quyết định ghi lại mọi lần quét Bluetooth ở cấp hệ thống và rõ ràng 16M là không đủ cho việc này. Nó sẽ vẫn xảy ra 4 hoặc 5 lần một ngày khi tôi có hơn 30 thiết bị Bluetooth xung quanh mình.
reTs

Bộ đệm logd là bộ đệm vòng, việc thay đổi kích thước của nó sẽ không có tác động nào có thể đo lường được về việc kết nối giữa logcat và logd có bị mất hay không. Tất cả những gì nó làm là thay đổi lượng lịch sử ghi nhật ký nằm trong bộ nhớ. Rất khó có khả năng điều này sẽ khắc phục được sự cố.
satur9nine

1
@ satur9nine, tôi không thể nói liệu nó có khắc phục được sự cố ở cấp độ cơ bản hay không, nhưng nó đã khắc phục sự cố của tôi ở chỗ nó ngăn chặn sự cố và cho phép hiển thị nhiều thông báo nhật ký hơn.
Suragch

Sau khi chuyển bản sao lưu TWRP từ Moto G5 Plus này sang Moto G5 Plus khác, bộ đệm logcat của tôi bao gồm một số sự kiện từ vài tháng trước, một số sự kiện từ hôm nay, tiếp theo là read: unexpected EOF!. Việc tăng lên 16 triệu đã khắc phục sự cố và làm biến mất các sự kiện hàng tháng tuổi.
nyanpasu64

16

Trong Tùy chọn nhà phát triển, bạn có thể đặt kích thước bộ đệm của Trình ghi nhật ký thành tối đa 16M.
(Cài đặt> Hệ thống> Tùy chọn nhà phát triển> Kích thước bộ đệm của trình ghi nhật ký)

Nếu bạn cần thêm, bạn có thể đặt nó bằng cách sử dụng adb. Ví dụ: bạn có thể đặt nó thành 100M:

adb logcat -G 100M

6

Nhật ký bạn đã đăng này cho biết ứng dụng bị lỗi (mặc dù không phải theo cách thông thường với stacktrace nhưng nó đang bị lỗi), không phải logcat. Bạn đã chọn ứng dụng và bộ lọc được đặt thành "Hiển thị ứng dụng đã chọn" trong logcat chưa? Nếu vậy, chỉ cần đặt bộ lọc thành "Không có Bộ lọc" và bạn sẽ thấy tất cả nhật ký ứng dụng của mình.

Ngoài ra, trong trường hợp bạn cần khởi động lại logcat vì bất kỳ lý do gì, thay vì khởi động lại Android Studio, bạn có thể chạy các lệnh sau sẽ khởi động lại adb và cuối cùng khởi động lại logcat của bạn:

adb kill-server
adb start-server

điều đó thật lạ, vì ứng dụng dường như tiếp tục hoạt động? tôi chắc chắn về bản thân tính toán (do đó tôi muốn gỡ lỗi nó) nhưng phần còn lại hoạt động, nhấp vào các nút, v.v. tiếp tục mang lại hành vi mong đợi? thủ thuật adb đã khôi phục logcat, rất tiếc là bỏ qua sau đó đến thời điểm thực ...
Noh Kumado

Tôi nghĩ ý của bạn là do tính toán dài dòng và sau đó có điều gì đó không ổn có nghĩa là ứng dụng có thể đang trở nên lag hoặc không phản hồi và sau đó gặp sự cố. Ứng dụng có bao gồm nhiều hoạt động không? Và khi lỗi xảy ra, nó giống như quay lại hoạt động trước đó? Không có bộ lọc không hiển thị tất cả các bản ghi phải không?
ahasbini

Không có ứng dụng nào chạy trơn tru, kết quả của nó tại một số thời điểm khác với dự kiến, có một số hoạt động và các luồng công nhân được thực hiện với các tác vụ không đồng bộ và không sau tin nhắn sự cố đó, logcat vẫn nhạt nhẽo cho mọi thứ ....
Noh Kumado

3

Nếu bạn đang chạy từ điện thoại thực - ngắt kết nối và kết nối điện thoại khỏi usb phù hợp với tôi (bộ đệm trống - như @Suragch đề xuất).


2

Thay đổi kích thước bộ đệm không hoạt động đối với tôi. Điều gì đã làm thay đổi kết nối USB của tôi thành cổng USB 3.0.


1
Tuyệt vời! Cảm ơn bạn cho gợi ý này. Tôi gặp vấn đề tương tự.
Ethan Leroy

Tương tự như vậy, cũng loại bỏ bất kỳ cổng USB nào nằm giữa thiết bị và máy tính của bạn và / hoặc thử các cổng USB khác trên máy tính của bạn.
satur9nine


1

Khởi động lại thiết bị của bạn! Tôi không biết tại sao nó hoạt động với tôi sau khi khởi động lại điện thoại di động của tôi.


0

Chỉ cần vào File -> Invalidate Caches / Restart sẽ cho phép android studio thực hiện công việc


Tôi không nghĩ rằng điều này sẽ giúp khắc phục sự cố, nhưng khởi động lại AS sẽ khởi động lại logcat, dường như đã khắc phục được sự cố.
PNDA

@PNDA tại sao không để android xác thực bộ nhớ đệm của bạn và khởi động lại nó cho bạn? Tôi không hiểu đâu là điểm bất lợi
Anonymous-E

0

Thật không may, điều này dường như vẫn là một vấn đề, tôi không thể tìm thấy giải pháp thỏa mãn bên cạnh việc cài đặt một plugin ( Tệp -> Cài đặt -> Plugin -> Thị trường ) có tên " Trình xem nhật ký ". Hoạt động tốt hơn trình xem logcat tích hợp của Android Studio.


0

Các đề xuất không làm việc cho tôi. Cuối cùng tôi đã thay đổi cài đặt tùy chọn này:

Menu "Run", Menu Entry "Chỉnh sửa cấu hình", sau đó ở phía bên trái "Ứng dụng / ứng dụng Android" và ở phía bên phải là tab "Michelangelo", và cuối cùng kích hoạt "Logcat: Xóa nhật ký trước khi khởi chạy".

Tất nhiên điều này có tác dụng phụ, nhưng ít nhất tôi có thể xem lại đầu ra nhật ký.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.