Logcat không hiển thị các cuộc gọi nhật ký của tôi


114

Tôi hoàn toàn là một người yêu thích lập trình Android và muốn tìm hiểu cách gỡ lỗi ứng dụng của mình. Tôi dường như không thể hiển thị lệnh gọi Log.i | d | v của mình trong LogCat.

Đây là mã mà tôi đang sử dụng. Như bạn có thể thấy, tôi đã xác định hằng số LOG_TAG, nhưng dường như không thể tìm thấy nó trong LogCat. Tôi cũng đã nhập android.util.Log VÀ tôi đã đảm bảo rằng trong AndroidManifest của mình, tôi đã đặt "có thể gỡ lỗi" thành TRUE.

Tôi cũng đã kiểm tra http://developer.android.com/reference/android/util/Log.html nếu may mắn giải quyết được vấn đề này.

Tôi đang làm gì sai? Tôi thậm chí đang tìm kiếm ở đúng nơi? Tôi cũng đã thử sử dụng phối cảnh DDMS và Debug. Bất kỳ sự giúp đỡ nào cho noob này sẽ được đánh giá rất cao. Cảm ơn.

Môi trường của tôi: Windows XP IDE = Phiên bản Eclipse: 3.6.1, Id bản dựng: M20100909-0800 Emulator = có nó trỏ đến android sdk 2.1 api 7

// mã HELLO World rất cơ bản với một vài lệnh gọi Log.i

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class debugger extends Activity {
    private static final String LOG_TAG = "debugger";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.i(LOG_TAG, "line 13");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.i(LOG_TAG, "CREATING NOW");
    }
}

Có vẻ như bạn không làm gì sai, bạn có chắc rằng Hoạt động của mình đang được bắt đầu không? Bạn có bộ lọc nào được đặt trong dạng xem logcat không? Bạn đã thử phiên bản dòng lệnh của logcat chưa? (adb logcat)
Cheryl Simon

Có, đã thử dòng lệnh và xuất ra tệp txt nhưng vẫn không tìm thấy. Tôi biết Hoạt động đã bắt đầu vì tôi thấy thông báo "Hello World" trong trình mô phỏng. Tôi đã thử xem logcat có và không có bộ lọc mà vẫn không gặp may.
Cavachon

Hãy thử dòng lệnh adb logcat và không lọc bất cứ thứ gì trước. Tôi khá chắc chắn rằng mã của bạn đang hoạt động và đang in vào nhật ký.
Heikki Toivonen

LogCat có hoạt động không? Ví dụ: bạn có thấy các mục nhật ký từ một ứng dụng khác (ví dụ: ứng dụng hệ thống) không?
Vit Khudenko

Nó có thể là thiết bị cụ thể. đôi khi chúng ta cần kích hoạt nhật ký từ menu ẩn trên điện thoại stackoverflow.com/a/43999262/2783229
nitesh

Câu trả lời:


143

Khi sử dụng Eclipse, trong phối cảnh DDMS, hãy đảm bảo rằng thiết bị phù hợp (có thể giả lập-xxxx) được chọn và đánh dấu. Chỉ khi đó, bạn mới nhận được đầu ra logcat trong dạng xem logcat.

Ngoài ra, plugin Android hơi kỳ quặc và đôi khi chỉ hiển thị dòng cuối cùng trong chế độ xem logcat. Nếu điều này xảy ra, hãy cố gắng xóa nhật ký. Sau đó, bạn sẽ lấy lại tất cả các mục nhật ký (dù sao cũng hoạt động với tôi).


Vâng, tất cả các vấn đề tôi đã gặp phải. Nếu bạn cuộn trong dạng xem Logcat, nó sẽ không tự động cuộn với các bản cập nhật trong tương lai cho đến khi bạn cuộn trở lại dưới cùng.
Mike Yockey

2
Ha! Tôi đã chiến đấu với điều này trong một thời gian. Đã mở DDMS và tôi đã chọn một trình giả lập cũ. Tại sao nó không mặc định cho trình giả lập hiện đang chạy là kỳ lạ.
Will Curran

Câu trả lời của ddewaele đã giải quyết được vấn đề của tôi, bạn chỉ cần để LogCat ở vị trí trọng tâm của nó. Một lưu ý nhỏ là bạn không phải thay đổi góc nhìn để hiển thị menu thiết bị Chỉ cần truy cập Window >> Show View >> Other >> Android >> Devices để hiển thị bảng thiết bị
Jay

@yock Tôi tin rằng đó là cố ý vì giả định là bạn muốn dừng lại và đọc tại điểm bạn đã cuộn đến.
Michael Mior 14/10/12

1
Hahaha Tôi thật là ngu ngốc, tôi không biết DDMS là gì và thậm chí tìm nó ở đâu.
Neon Warge

71

Nếu vẫn thất bại:

Tôi đã làm tất cả những điều trên và không thể tìm ra điều gì sai,

Kiểm tra với:

adb logcat

để tìm ra rằng các mục nhập của tôi không chính xác trong logcat, nhưng kỳ quặc của twas adt.

Sửa chữa:

Khởi động lại nhật thực

Đây là điều duy nhất đã sửa nó.


1
Điều này hoạt động, nhưng tôi không thể tiếp tục khởi động lại Eclipse vì sự cố này xảy ra rất nhiều đối với tôi. Có ai có một giải pháp tốt hơn?
Khaled Alanezi

@KhaledAlanezi sau đó nên xem xét sử dụng logcat từ dấu nhắc lệnh hoặc windows powershell (tốt hơn).
Dheeraj Bhaskar

1
tôi chỉ khởi động lại nhật thực mỗi khi điều này xảy ra và nó luôn giải quyết được vấn đề. nó thường xảy ra mỗi ngày một lần nhưng tôi đã quen với việc được thất vọng từ nhật thực ..
lập trình viên

2
@programmer phải thất vọng với nhật thực không còn nữa, chuyển sang Android Studio, bạn của tôi :)
Dheeraj Bhaskar

1
Đối với tôi bằng cách sử dụng trình giả lập trên một máy từ xa khởi động lại nhật thực không hoạt động Logcat không bao giờ hiển thị bất cứ điều gì nhưng adb logcatlà một mẹo hay, nó hoạt động rất tốt.
soger

12

Tôi đã gặp vấn đề tương tự khi sử dụng Android Studio và đã xoay sở được bằng cách chọn No Filterstrong hộp chọn ở góc trên cùng bên phải của LogCat. Bằng cách làm này, tôi bắt đầu nhận mọi thứ Android ghi trong nền vào LogCat bao gồm cả các cuộc gọi Nhật ký bị thiếu của tôi.

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


9

Khởi động lại Eclipse và kiểm tra nhật ký mèo sẽ được hiển thị.


6

Tôi đã phát hiện ra mình đang tự động nhập com.sileria.Log (từ một số dự án thư viện) thay vì android.util.Log , trong đó cái sau là cái chính xác. Kiểm tra hàng nhập khẩu của bạn.


3

Tôi nhận thấy rằng Eclipse đôi khi sẽ ném ra một ngoại lệ khi khởi động ứng dụng Android, sau đó LogCat ngừng cập nhật. Tôi đã sửa điều đó bằng cách khởi động lại Eclipse. Tôi không chắc liệu bạn đã thử điều đó chưa và tôi biết đó vẫn chưa phải là giải pháp tối ưu, nhưng tôi nghi ngờ rằng plugin Eclipse vẫn còn một số lỗi cần khắc phục.


3

Cách dễ nhất:

Kiểm tra trong cửa sổ logcat của bạn - Nút TẠM DỪNG ở góc PHẢI TRÊN ĐẦU || (Tạm dừng nhận tin nhắn logcat mới)

Vài cú nhấp chuột + cuối cùng khởi động lại nhật thực (thường hoạt động trong trường hợp của tôi)


3

Tôi cần khởi động lại dịch vụ adb bằng lệnh adb usb

Trước đó, tôi đã nhận được tất cả ghi nhật ký và có thể gỡ lỗi, nhưng không nhận được các dòng nhật ký của riêng mình (vâng, tôi đã nhận được ghi nhật ký hệ thống được liên kết với ứng dụng của mình).


Tôi cũng có điều này - không nhận được dòng nhật ký của riêng mình. Nhưng điều này không giúp được gì :(
Ixx

2

Có một số lý do khiến bạn có thể không thấy nhật ký, hầu hết trong số đó được liệt kê bên dưới. Dưới đây là một số bước để kiểm tra hầu hết các lý do:

  1. Đảm bảo rằng bạn không có 'android: debuggable = "false"' trong AndroidManifest.xml của mình
  2. Đảm bảo logcat của bạn không bị tạm dừng và đảm bảo rằng bạn được cuộn xuống dưới cùng
  3. Bộ lọc của bạn phải là 'không có bộ lọc' hoặc ứng dụng hiện tại của bạn
  4. Bạn đã chọn đúng thiết bị trong danh sách thiết bị logcat của mình
  5. Nếu bạn không nhận được bất kỳ thông báo nào , hãy thử khởi động lại adb. Bạn có thể làm điều đó từ Android Studio bằng cách nhấp vào biểu tượng 'khởi động lại', biểu tượng này nằm ngay sau biểu tượng in cho logcat và nó trông giống như một mũi tên cong màu xanh lá cây xuất hiện từ hộp. Nếu bạn không thấy nó, hãy di chuột qua '>>' tiếp tục menu biểu tượng khi logcat quá nhỏ.

2

Trên Android Studio: Nhấp vào mũi tên màu xanh lục trỏ sang phải để khởi động lại quá trình ghi nhật ký; nếu nó không hiển thị, hãy nhấp vào biểu tượng >> để định vị nó.


1

Tôi cũng là người mới sử dụng Android-Eclipse. Đây là những gì tôi cần để có được thông báo LogCat để hiển thị trong Eclipse: 1: thêm nó vào lớp mà thông báo logcat được gọi là: private static final String TAG = "MyActivity"; (theo tài liệu ở đây )

2: thêm Log.i này (TAG, "inLayout - đã hoàn thành"); khi bạn muốn hiển thị thông báo ở đâu

Nếu cách trên không hoạt động, hãy tắt Eclipse và khởi động lại nó và chạy lại dự án của bạn.

Sau đó nó sẽ hoạt động.


1

Còn một điều nữa cần theo dõi:

Ở phía trên bên phải của logcat có một bảng thả xuống để lọc thư theo loại. Đảm bảo rằng nó ở cấp độ bạn đang tìm kiếm (nếu nó ở cấp độ khẳng định, nó có thể sẽ khiến logcat của bạn trống).


1

Vui lòng đi tới Trình quản lý tác vụ và giết quá trình adb.exe. Khởi động lại nhật thực của bạn một lần nữa.

hoặc là

thử adb kill-server và sau đó dùng lệnh adb start-server .


1

Có lẽ nó không chính xác và lâu hơn một chút, nhưng tôi đã giải quyết vấn đề này (Android Studio) bằng cách sử dụng:

System.out.println("Some text here");

Như thế này:

try {
       ...code here...
} catch(Exception e) {
  System.out.println("Error desc: " + e.getMessage());
}

1

Tôi đã dành vài giờ cho trường hợp như vậy. Tôi chỉ thấy nhật ký phím cảm ứng. Chỉ có bấy nhiêu thôi. Vấn đề là ... smarthphone. Sau khi khởi động lại là OK. Ngắt kết nối cáp đã gây ra sự cố trở lại. Đã phải khởi động lại nó một lần nữa. Có vẻ như giao tiếp USB của Android không được thiết kế tốt.


Cảm ơn bạn! Thực ra, đó là cài đặt USB trên menu nhanh của điện thoại ... liên quan đến gỡ lỗi USB. Tôi đã có thói quen thay đổi từ Chỉ sạc sang Truyền tệp. NHƯNG, Chỉ sạc là yếu tố giúp ghi nhật ký hoạt động. Tôi chỉ mới quay lại lập trình Android sau một vài năm nữa, và điều này thực sự cản trở quá trình học tập của tôi.
wwfloyd

Sau đó, tôi chỉ nhận được một số nhật ký ... mọi thứ được thêm gần đây đều bị bỏ qua. Đã sắp xếp điều đó với Clean and Rerun, trong Android Studio.
wwfloyd

1

KHẮC PHỤC NHANH CHÓNG.

Chỉ cần khởi động lại nhật thực

Hoạt động hoàn hảo.


0

Sử dụng SDK 4.0.3, bạn phải chọn rõ ràng nó trên cấu hình gỡ lỗi> dự án> mục tiêu, nếu không nó sẽ không bao giờ hiển thị bằng Eclipse Indigo (3.7). Tất nhiên, một sự khởi động lại nhật thực xảy ra sau đó.


0

Tôi cũng gặp sự cố khi xem đầu ra nhật ký đơn giản trong logcat. Sự cố của tôi đã được giải quyết khi tôi cài đặt JDK mới nhất. Tôi vừa thiết lập một máy phát triển mới và chỉ có JRE được cài đặt và cài đặt JDK phù hợp với tôi.


0

Không có câu trả lời nào khác phù hợp với tôi, nhưng điều này đã làm:

Tôi đã xóa dự án của mình khỏi không gian làm việc, sau đó xóa mọi thứ bắt đầu bằng dấu chấm (.settings, .project, v.v.) khỏi thư mục dự án. Sau đó, tôi nhập lại bản chiếu. Tôi thiếu một số cài đặt và điểm ngắt nhưng ít nhất nó hoạt động.


0

Tôi đã gặp sự cố này và dường như không có gì hoạt động cho đến khi tôi chuyển cuộc gọi nhật ký thành một trình xử lý. Bây giờ nó hoạt động mọi lúc, bất kể bạn đang ở đâu.


0

Tôi đã mắc lỗi khi nhập cụm từ tìm kiếm vào hộp tìm kiếm logcat. Tôi đã quên xóa nó và do đó không thể xem nhật ký mới. Vì chúng không khớp với cụm từ tìm kiếm của tôi và không được hiển thị.


0

Trong trường hợp của tôi, tôi phải xóa dòng này:

    <application
         android:debuggable="false"  <!-- Remove this line -->
         ..../>

Từ thẻ Ứng dụng trong tệp kê khai của tôi.


0

Giải pháp tốt nhất cho tôi là khởi động lại máy chủ adb (trong khi tôi đã Bật tích hợp ADB trong Android studio - Công cụ - Android - đã chọn). Để thực hiện việc này một cách nhanh chóng, tôi đã tạo adbr.battệp bên trong android-sdk\platform-toolsthư mục ( adb.exevị trí) với bên trong:

adb kill-server
adb start-server

Bởi vì tôi có thư mục này trong biến hệ thống PATH, luôn luôn khi tôi cần khởi động lại adbtừ Android studio, tôi chỉ có thể ghi vào thiết bị đầu cuốiadbr là xong.

Một tùy chọn khác để làm điều này là thông qua Android Device Monitor trong tab Devices - Menu sau khi nhấp vào mũi tên nhỏ bên phải - Đặt lại adb .


0

Đối với nhật thực: 1) Chuyển đến phối cảnh ddms. 2) Đảm bảo rằng đã chọn đúng thiết bị. 3) Nếu đã được chọn và không hiển thị nhật ký, hãy khởi động lại ABD. * Hy vọng điều này sẽ giải quyết.


0

Tôi cũng khởi động lại dịch vụ ADB bằng "adb usb" và khắc phục sự cố cho tôi. Trên thực tế, chỉ có một hoạt động của tôi không được ghi lại nữa. Tất cả những người khác đã làm công cụ ghi nhật ký. Sau khi khởi động lại adb mọi thứ lại hoạt động như một lần nữa. Đối với những người đang tìm kiếm giải pháp khác: adb kill-server, adb start-server trong CLI thường sẽ khắc phục được sự cố của bạn.


0

buộc ứng dụng của bạn đóng lại sau khi điều này sẽ bắt đầu lại LogCat ...

sử dụng cái này cho lực đóng: D

setContentView(BIND_AUTO_CREATE);

0

một số lần vấn đề không phải từ máy tính, mặt khác là IDE, ADB, v.v., nhưng nó phát sinh từ thiết bị của bạn không gửi nhật ký đến ADB, vì vậy nếu bạn đã thử tất cả các cách được đề cập trước đó mà logcat của bạn vẫn trống, hãy thử khởi động lại thiết bị và thử lại. Tôi đã thử tất cả các cách được đề cập ở trên và không có cách nào trong số chúng hoạt động nhưng sau khi khởi động lại trên điện thoại, logcat hoạt động như phép thuật


Làm cách nào để kiểm tra xem thiết bị có thể gửi nhật ký tới ADB không?
JCarlosR

@JCarlos thử khởi động lại thiết bị của bạn nếu không ai trong số các giải pháp trên làm việc
Code_Worm

AndroidMonitor hiển thị thông báo khi tôi sử dụng Logvà chạy ứng dụng từ điện thoại thông minh của mình, nhưng nó không hoạt động từ đồng hồ thông minh của tôi. Tôi đã xem xét các cài đặt nhưng tất cả đều có vẻ tốt.
JCarlosR

0

Tôi gặp sự cố này và đã khắc phục, TAG chuỗi không có khoảng trống:

"thẻ của tôi" // ghi chú hiển thị
"my_tag" // được


0

Trong trường hợp của tôi, tôi chỉ cần thêm một tên cho Chuỗi. Trong trường hợp đầu tiên, tôi chỉ có một khoảng trắng ở giữa các dấu ngoặc

private static final String TAG = " ";

nhưng sau khi thêm tên, nó hoạt động hoàn hảo.

private static final String TAG = "oncreate";

0

Sau khi nâng cấp lên Android 3.6.1, tôi đã gặp sự cố này nhiều lần. Điều duy nhất hiệu quả trong trường hợp của tôi là KHAI THÁC THIẾT BỊ.

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.