2012-02-13 32 views
9

Tôi có dự án NDK của Android có phần NDK biên dịch ok từ dòng lệnh; Tôi đã từng không gặp vấn đề với việc chạy các công cụ đã biên dịch từ dưới Eclipse như một dự án Java thuần túy. Nhưng tôi đã chuyển đổi nó thành một dự án C/C++ và bây giờ thậm chí không thể chạy nó.lỗi sai từ Eclipse: Chức năng '__android_log_print' không thể được giải quyết (Android, CDT)

Tôi thấy trong "Bảng điều khiển" mà thư viện được tạo, NHƯNG: Eclipse cho tôi biết dự án của tôi có lỗi và nó sẽ không chạy. (Tại sao trên trái đất? Mã số được biên soạn !!!)

Tôi đã giải quyết một số vấn đề với biểu tượng bị thiếu bằng cách thêm đường dẫn bao gồm vào thuộc tính dự án.

Nhưng tôi vẫn nhận được điều này lạ Function '__android_log_print' could not be resolved lỗi.

Vì vậy, hai câu hỏi:

  1. Làm thế nào để thoát khỏi lỗi này? (Có thể bỏ qua không?)
  2. Gói B: làm thế nào để chuyển đổi dự án C/C++/Java hỗn hợp này thành một Java thuần túy?

= = =

PS "Khi bạn gọi tàu, vì vậy nó sẽ làm". Không phải họ chỉ tìm thấy một cái tên tốt hơn cho một IDE, một cái gì đó giống như "mã hóa Lucid"? (Rhetoric câu hỏi)

= = =

UPDATE: Dường như Eclipse thông báo lỗi chỉ dành cho các tập tin mà nó thấy (có nghĩa là, cho bạn). Tôi đã mở một tệp khác bằng macro LOGD và Eclipse cũng đã báo cáo lỗi cho nó. Tôi đã đóng tất cả các cửa sổ tệp, đóng Eclipse đã xóa tệp .something. Sau đó, tôi đã có thể chạy ứng dụng. Tôi không có nguy cơ mở các tệp nguồn bằng macro ghi nhật ký đó. (Đó là rất xa "mã Lucid", phải không?)

+0

Xem thêm: cách sử dụng Mã :: Khối thay vì Eclipse: http://stackoverflow.com/questions/9079592/need-a-simple-linux-c-ide- android-ndk/9668394 # 9668394 – 18446744073709551615

Trả lời

1

Trong file Android.mk của bạn, xin vui lòng thêm

LOCAL_LDLIBS := -llog -landroid 

Các __android_log_print không phải là một phần của libc, đó là trong thư viện log , vì vậy bạn cần khai báo rõ ràng để được liên kết.

Lưu ý nhật thực sẽ từ chối chạy dự án nếu có lỗi ở bên C hoặc java. Trong trường hợp này, có một lỗi liên kết; mã không thành công khi biên dịch, vì vậy nó sẽ không chạy nó.

+0

Tôi _do_ có '' -llog'' trong '' Android.mk'', nếu không sẽ có lỗi liên kết trong dòng lệnh. Chỉ trong trường hợp tôi đã thêm liblog.so vào danh sách ở tab "Thư viện" và thêm ..arch-arm/usr/lib vào tab "Đường dẫn thư viện". Tôi vẫn nhận được lỗi tương tự. Eclipse không muốn chạy dự án có biên dịch hoàn thành thành công. – 18446744073709551615

+0

Tôi lặp lại: có _không có lỗi liên kết_. Tôi _was_ có thể chạy dự án trước khi chuyển đổi nó thành một bản C/Java hỗn hợp. – 18446744073709551615

2

Cách bỏ qua: mở cửa sổ 'Sự cố', chọn lỗi trong tệp c/C++ và nhấn phím Del. Một hộp thông báo xác nhận sẽ được hiển thị, nhưng sau đó bạn có thể gỡ lỗi ứng dụng của bạn ... cho đến lần tái xây dựng tiếp theo =) Ngoài ra, như bạn đã đề cập trước đó, bạn có thể đóng tất cả các tệp c/C++ đã mở.

+0

Tôi ... errr ... đã đóng cửa. Nó không giúp được gì, nhưng bây giờ tôi không biết cách mở lại cửa sổ "Problems". – 18446744073709551615

+0

Tìm thấy: menu - cửa sổ - hiển thị chế độ xem - sự cố. – 18446744073709551615

6

Cấu hình của CDT indexer cần phải kích hoạt tính năng "tiêu đề không sử dụng Index ..."

Làm thế nào để đạt được điều đó: dự án-> Properties-> C/C++ General-> Indexer.

enter image description here

Loại bỏ lỗi cho tôi.

+0

Giải quyết nó cho tôi – mlipman

0

Hoặc bạn có thể gõ lại các chuỗi này và khởi động lại Eclipse; Tất cả các bản sửa lỗi này nghe có vẻ lame ...

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