2012-04-25 22 views
5

Tôi đang sử dụng mã mới nhất được kiểm tra từ GitHub. (0.13.0 beta)Đối với Eclipse, CCLog không hoạt động. CCMessageBox hoạt động tốt

Tôi đang phát triển cho Android với Eclipse. Tôi đã thêm * COCOS2D_DEBUG * trong Android.mk. Tôi đã kiểm tra và đảm bảo rằng COCOS2D_DEBUG đã thực sự được xác định với giá trị 1.

Sự cố: CCLog sẽ không in bất kỳ thứ gì vào LogCat. Trong khi chờ đợi, CCMessageBox hoạt động tốt.

(sau đó tôi thử nghiệm cùng một bộ mã trên iOS, cả CCLog và CCMessageBox làm việc tốt.)

tôi đang thiếu gì ở đây?

Trả lời

7

Chỉ cần tự hỏi hai điều: 1. bạn đang sử dụng CCLog hoặc CCLOG (tất cả các trường hợp lớn)?

bạn đã đặt

#define COCOS2D_DEBUG 1 

tại thực sự đầu (cao hơn so với bất kỳ #include) trong file cpp mà bạn muốn gỡ lỗi?

5

Sử dụng CCLOG ("Chuỗi kiểm tra"), tất cả chữ hoa, nó sẽ hoạt động. CCLog ("Hello") không hoạt động trong nhật ký mèo.

+0

Wow Cảm ơn, tôi không thấy nhật ký và đó là, tôi phải sử dụng CCLog. – goe

0

Nếu bạn muốn sử dụng "CCLog()" sau đó là không cần phải được thiết lập COCOS2D_DEBUG #define 1 Nếu bạn muốn sử dụng CCLOG() sau đó bạn phải thiết lập COCOS2D_DEBUG #define 1

cũ cho CCLog

CClog("Hi this is CCLog"); 

mẫu mã cho CCLOG

CCLOG ("Characters: %c %c \n", 'a', 65); 

CCLOG ("Decimals: %d %ld\n", 1977, 650000L); 

CCLOG ("Preceding with blanks: %10d \n", 1977); 

CCLOG ("Preceding with zeros: %010d \n", 1977); 

CCLOG ("Some different radixes: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100); 

CCLOG ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416); 

CCLOG ("Width trick: %*d \n", 5, 10); 

CCLOG ("%s \n", "A string"); 
0

kinh nghiệm riêng của tôi về cách sử dụng CCLOG để in thông tin trong LogCat của Eclipse:

  1. trong Eclipse, dự án thư mục mở JNI của bạn, thêm -DCCOCOS2D_DEBUG = 1 trong Application.mk nộp như thế này:

    APP_CPPFLAGS: = -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION = 1 -std = C++ 1 -fsigned -char -DCCOCOS2D_DEBUG = 1

Application.mk with -DCCOCOS2D_DEBUG=1

  1. Một nơi nào đó trong các tập tin cpp dự án của bạn viết hàm CCLOG: 0.123.

Tất cả những chức năng CCLOG CCLog nhật ký, làm việc, vì vậy chỉ sử dụng chính một CCLOG ...

  1. LogCat của Eclipse là một công cụ Terrible kinh nghiệm của tôi, Tôi ghét nó quá nhiều .. Điều rất khó chịu mà vẫn xảy ra là sau 3-6 build LogCat ngừng hoạt động, dòng mới ngừng xuất hiện, và vì vậy tôi phải khởi động lại Eclipse và sau đó LogCat tiếp tục làm việc ... Khi tôi nhấn nút Clear Log trong LogCat thì tất cả các bản ghi biến mất và các bản ghi mới không xuất hiện ...
    Anyways, để xem các bản ghi thêm một bộ lọc đầu tiên, tên không quan trọng, và trong thẻ dòng ghi: thông tin gỡ lỗi thì CCLOGs sẽ hiển thị: LogCat CCLOG

Ghi chú:

tôi đã nhận xét

//#define COCOS2D_DEBUG 1 

trong dự án của tôi, chắc chắn rằng không có dòng khác như thế và tôi vẫn nhận CCLOG tôi in ra trong visual studio 2013, và của Eclipse Logcat trên cửa sổ 7:

visual studio2013 COCOS2D_DEBUG commented out

0

tôi thêm cùng một vấn đề: logcat đã không hiển thị các bản ghi cocos2dx tôi. Sau đó, tôi hiểu rằng ứng dụng của tôi luôn được xây dựng ở chế độ phát hành.

Make sure to activate debug mode in Eclipse for your project: 

- Right-click your project 
- Choose "Build Configurations" \ "Set Active" \ "Debug" 

Không cần phải sửa đổi application.mk của bạn, vì một chỉ thị đã được thiết lập ở đó để gỡ lỗi hoặc cho chạy một phiên bản phát hành ... Sau đó để có được các bản ghi trong sổ logcat,

- Create a new LogCat's filter and in the "by log tag" type 
"cocos2d-x debug info" (without quotes) 

Khi chạy ứng dụng của bạn, hãy chọn bộ lọc của bạn trong LogCat để xem mọi thứ. BTW: sử dụng các macro CCLOG khi sử dụng các bản ghi cocos2dx:

CCLOG("Year is %d",2015);  // don't use CCLog 
0

Tính đến cocos2dx phiên bản 3 ít nhất là trong Application.mk COCOS2D_DEBUG được thiết lập có điều kiện dựa trên tiêu chuẩn NDK cờ NDK_DEBUG = 1. Vì vậy, chỉ cần gọi các bản dựng của bạn đi qua

ndk-build NDK_DEBUG=1 

Điều này cũng đảm bảo rằng các ký hiệu thích hợp được tạo cho bản dựng gỡ lỗi. Bạn sẽ muốn sử dụng macro "CCLOG" và không sử dụng chức năng không được chấp nhận CCLog như trước đây sẽ mở rộng thành không có gì trong chế độ phát hành và không phải chịu bất kỳ chi phí hiệu năng nào khi xây dựng để phát hành.

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