2011-12-29 23 views
7

Tôi đang tạo thư viện dùng chung cho hệ điều hành Android. Mặc dù tôi đã thực hiện một số ứng dụng Android trong Eclipse tôi quyết định bắt đầu phát triển mẹ đẻ của tôi với Visual Studio và vs-Android add-on:Gỡ lỗi thư viện gốc cho hệ điều hành Android

http://code.google.com/p/vs-android/

Tôi thực sự quen thuộc với VS và Google cho thấy add-on như một trong những kết quả đầu tiên. Tôi đã đi qua các thủ tục thiết lập toàn bộ, cài đặt JDK, NDK, Ant, thiết lập các biến hệ thống và cuối cùng đã có một dự án làm việc. Nó hoạt động như một say mê! Nhưng có một nhược điểm lớn. Tôi không thể gỡ lỗi mã gốc.

Tôi biết có công cụ NDK-GDB, nhưng tôi liên tục thất bại khi cố gắng thiết lập. Tôi đã đọc NDK-GDB.html tài liệu, ném đi những giải pháp vs-Android ban đầu và thành công trải qua các hướng dẫn sau:

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

nhưng bây giờ tôi đang bị mắc kẹt một lần nữa khi cố gắng đi qua:

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/

http://mhandroid.wordpress.com/2011/01/23/using-cgdb-with-ndk-debug-and-cgdb-tutorial/

tôi cũng đã cố gắng WinGDB - chỉ cần nhập khẩu làm việc dự án Eclipse có chứa cả mã nguồn gốc và Java, nhưng nó không còn biên dịch.

Tóm lại, có nhiều phần của câu đố, nhưng tôi vẫn còn thiếu một số trong số đó. Tôi sợ rằng tôi thiếu toàn bộ ý tưởng gỡ lỗi mã bằng một công cụ dòng lệnh như NDK-GDB.

Ai đó có thể cung cấp cho tôi một số giải thích và các bước rõ ràng về cách gỡ lỗi thư viện gốc (không quan trọng nếu với vs-android hoặc Eclipse hay bất kỳ thứ gì khác)? Xin lưu ý rằng tôi không phải là một guru Linux và cũng không quen thuộc với Cygwin hoặc gdbserver.

+0

Tại sao bạn muốn tạo thư viện được chia sẻ cho ứng dụng của mình, thay vì chỉ liên kết tĩnh? –

Trả lời

13

Các bước tôi đi để có thể gỡ lỗi bằng ndk-gdb

Xây dựng

Đặt cờ -g biên dịch trong JNK/Android.mk để xây dựng gdb-server

LOCAL_CFLAGS := -g 

xây dựng lib gốc để gỡ lỗi NDK_DEBUG=1

ndk-build NDK_DEBUG=1 

Đặt ứng dụng có thể gỡ lỗi trong tệp kê khai.

android:debuggable=true 

Mở cygwin và cd vào đường dẫn dự án. Đặt đường dẫn đến adb.

export PATH=$PATH:/path_to_android_sdk/platform-tools 

Và sau đó bắt đầu gdb

ndk-gdb --verbose --adb=adb.exe 

Bạn sẽ phải gõ continue khi bạn đã kết nối với gdb-server

+0

Xin chào, cảm ơn câu trả lời của bạn. Thật không may nó không hoạt động: – vitakot

+0

Vita @ Vita-PC ~ $ xuất PATH = $ PATH: C:/Android/android-sdk/nền tảng-công cụ Vita @ Vita-PC ~ $ ndk-gdb --verbose - -adb = adb.exe Đường dẫn cài đặt NDK của Android:/home/Vita/C: \ Android \ android-ndk-r7 Sử dụng lệnh adb cụ thể: adb.exe /cygdrive/c/Android/android-ndk-r7/ndk-gdb: dòng 281: adb.exe: lệnh không tìm thấy LRI: Không thể chạy ADB với: adb.exe – vitakot

+0

@vitakot các đường dẫn trong cygwin là khác nhau, nó phải là '/ cygdrive/c/Android/android- sdk/paltform-tools'. Bạn có thể thử 'cd' vào thư mục trước để đảm bảo bạn nhận đúng. – tidbeck

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