2010-07-23 39 views
8

Thường thì các chương trình của tôi chỉ đơn giản là lỗi. Tôi không thể thấy bất cứ điều gì trong LogCat hoặc thông tin hữu ích ở nơi khác để tìm hiểu những gì đã xảy ra. Điều duy nhất tôi thấy là một loại ngoại lệ. Điều này là không thể chấp nhận và làm cho chương trình Android gần như không thể. Tôi chắc chắn phải có một số trợ giúp bổ sung để gỡ lỗi, nhưng sau nhiều tuần tìm kiếm, không có gì.Mẹo gỡ lỗi Android

Có ai có gợi ý về cách tìm lỗi trong chương trình chỉ đơn giản là treo không?

Câu hỏi chung tôi biết, nhưng không có câu trả lời, tôi sẽ phải thoát khỏi cố gắng phát triển ứng dụng cho Android. Tôi không thể dành hàng tuần để tìm kiếm mọi sai lầm đơn giản.

+1

Cảm ơn, khi tôi thấy câu trả lời cho điều tôi sẽ lưu ý. – Mitch

Trả lời

3

Ngoài ra còn có trình gỡ rối Eclipse thực tế. Nếu bạn chỉ chạy chương trình bằng trình gỡ lỗi cho đến khi nó gặp sự cố, bạn có thể không thấy dấu vết ngăn xếp đặc biệt hữu ích. Nhưng nếu bạn thêm một breakpoint hoặc hai trong các mã mà đến ngay trước khi vụ tai nạn, bạn có thể bước cẩn thận và tìm ra những gì đang xảy ra.

Ngoài ra, mặc dù tôi vẫn còn khá mới để phát triển Android, kinh nghiệm của tôi là hầu hết các sự cố bí ẩn trong mã của tôi về cơ bản là ClassCastException s. Hãy xem xét cẩn thận tất cả những nơi bạn đang truyền một thứ gì đó từ lớp này sang lớp khác và đảm bảo rằng bạn không cho rằng thứ gì đó thuộc loại thực sự không phải.

+0

Tôi sẽ để mắt đến ClassCastException, nhưng tôi không thấy điều đó ngay bây giờ. Tôi thường khá cẩn thận khi trở thành một lập trình viên C++ nơi mà việc đúc gần như là một ý tưởng tồi. Nhưng tôi sẽ cẩn thận về điều này. Cảm ơn. – Mitch

+1

Nó thường là một ý tưởng tồi trong Java quá, nhưng nó đi lên đôi khi trong lập trình Android, như 'textView = (TextView) findViewById (R.id.textview1)' – MatrixFrog

+0

Tôi là một lập trình Android và chúng tôi sử dụng đúc tất cả các thời gian. Đôi khi nghiên cứu nguồn gốc của lớp và thông tin trên các trang dành cho nhà phát triển Android giúp bạn hiểu những gì bạn đang truyền đến/từ (nếu nó không phải là cùng một lớp). – Azurespot

0

Thực ra, tôi không chắc bạn đang gặp sự cố bình thường. Nó có thể là một ANR hoặc một số hiện tượng tương tự khóa tất cả mọi thứ. Điều đó có thể khiến bạn thấy ít nhật ký hơn từ ứng dụng của mình. Tôi nghĩ rằng sự hỗ trợ gỡ lỗi cho Android là khá sang trọng so với một số môi trường khác tôi đã làm việc với.

1

Nghe có vẻ như tôi có lỗi trong cài đặt Android của bạn ở đâu đó. LogCat đôi khi bị nhầm lẫn và ngắt kết nối khỏi thiết bị ảo (đã nói ở đây: getting blank screen in logcat).

Nhưng vấn đề của bạn nghe có vẻ nghiêm trọng hơn nhiều. Tôi biết đó là một nỗi đau, nhưng hãy xem xét việc cài đặt mới hệ thống phát triển Android của bạn (bao gồm cài đặt Eclipse hoàn toàn mới).

Tôi đã gặp phải sự cố tương tự và cài đặt mới đã giúp khá nhiều (đặc biệt sau một vài nâng cấp - mọi thứ có thể khá lộn xộn).

Chúc may mắn.

1

Đây là tổng thời lượng, nhưng là những gì hóa ra là câu trả lời cho người mới sử dụng Android này: bạn có chắc thiết bị của mình đã được kết nối không?

Điều gì đã xảy ra trong trường hợp của tôi (đã đưa tôi đến đây, nghĩ rằng ứng dụng của tôi không báo cáo sự cố đối với LogCat) là những gì tôi nghĩ rằng tôi đang gỡ lỗi hóa ra không phải là điện thoại của tôi, nhưng giả lập Android mà tôi đã xảy ra đang chạy cùng một lúc. Khi tôi nhận ra rằng điều này đang xảy ra, tôi bỏ giả lập, và logcat dừng lại.

Khi tôi chạy logcat một lần nữa, nó quay ra nó thậm chí còn không tìm thấy điện thoại của tôi:

$ ./adb logcat 
- waiting for device - 

Từ đó, tôi đã phải trải qua một số hoops để có được điện thoại của tôi để được công nhận, chẳng hạn như adb not finding my device/phone (MacOS X)enabling debugging on the phone. Cuối cùng, tôi đã phải set android:debuggable=true.

Sau khi giết adb và chạy logcat lần nữa, tôi đang xem nhật ký bên phải và có thể thấy các ngoại lệ lỗi.

0

Làm theo các số màu đỏ.Bạn sẽ cần phải được trong debug xem

1) Nhấp vào sự kiện rằng ném ngoại lệ 2) Điều hướng tot ông biến tạo ra cho rằng sự kiện 3) click vào "e" 4) Nhìn vào detailMessage

enter image description here

Các vấn đề liên quan