2011-12-27 24 views
19

Tôi đã tải xuống mã nguồn Trình xem PDF của Android và đang cố gắng biên dịch mã nguồn trong Eclipse. Thay vì làm rối tung với Cygwin và biên dịch lại các thư viện C có nguồn gốc, bạn của tôi nói rằng tôi chỉ có thể trích xuất các tập tin trước khi biên soạn .so từ APK ở đây:Làm cách nào để nhập một thư viện gốc (tệp .so) vào Eclipse?

http://code.google.com/p/apv/downloads/detail?name=apv-0.3.1dev13.apk&can=2&q=

Làm thế nào chính xác để tôi nhập những libpdfview2.so file vào dự án nhật thực?

Cập nhật: Eclipse cung cấp cho các lỗi sau đây và sẽ không chạy:

Lưu trữ cho thư viện yêu cầu: 'lib/armeabi/libpdfview2.so' trong dự án 'APV' không thể đọc hoặc không phải là một tập tin ZIP hợp lệ

Trả lời

21

Xem cách họ thiết lập những điều trong dự án mẫu: http://code.google.com/p/apv/source/browse/#hg%2Fpdfview

hướng dẫn NDK này cũng có thể hữu ích trong việc giúp bạn tìm ra cách điều làm việc với NDK: http://mobile.tutsplus.com/tutorials/android/ndk-tutorial/

Những điều cơ bản là thế này:

  1. Các file .so thư viện thường đi trong thư mục con project_root_dir/libs. Ngoài ra, nói chung, chúng nằm trong các thư mục con khác mô tả kiến ​​trúc của chúng (ví dụ: project_root_dir/libs/armeabi/libpdfview2.so).

  2. Để sử dụng thư viện trong một hoạt động bạn thêm một thư viện bộ nạp tĩnh để hoạt động như hình dưới đây:

    tĩnh
    {
    System.loadLibrary ("pdfview2"); // Thông báo thiếu tiền tố lib
    }

  3. Sau đó, bạn xác định các hàm gốc bạn đang nhập. Bạn có thể nhận ra các hàm này nhờ từ khóa gốc. Tìm trong các tập tin dưới đây để xem những gì các chức năng họ nhập khẩu trong mẫu:

http://code.google.com/p/apv/source/browse/pdfview/src/cx/hell/android/pdfview/PDF.java?r=560343d2dad904c5c925b6cadf97b90430fd25f4

Dưới đây là một số ví dụ:

private native int parseBytes(byte[] bytes); 
private native int parseFile(String fileName); 
private native int parseFileDescriptor(FileDescriptor fd); 
+0

Đó là những gì tôi đang cố gắng làm nhưng tôi không thể biên dịch dự án đó từ mã nguồn C. Tôi đã quản lý để trích xuất các tệp thư viện được biên dịch từ APK, nhưng không biết cách đưa chúng vào dự án Android trong Eclipse. –

+0

Bạn đã làm theo hướng dẫn xây dựng ở đây chưa? http://code.google.com/p/apv/source/browse/pdfview/jni/build-instructions.txt – Theo

+0

Vâng, nó không hoạt động. Tôi từ bỏ. Những hướng dẫn này là để xây dựng libpdfview2.so và tôi có tệp đó được trích xuất từ ​​APK nên tôi không cần trợ giúp xây dựng nguồn C. Tôi cần trợ giúp nhập/liên kết ứng dụng đó với ứng dụng Android. –

5

Như đã đề cập another Stack Overflow thread about this topic tắt "Tự động refresh Tài nguyên và tài sản thư mục xây dựng "và" Lỗi lực khi các jars bên ngoài chứa các thư viện gốc "trong Window/Preferences/Android/Build giúp. Ít nhất nó đã giúp ích trong trường hợp của tôi!

Và đừng quên đặt tệp đó trong 'lib s/armeabi' để có sẵn trong thời gian chạy.

Hy vọng điều này đã giúp ích cho người khác, cũng nếu quá muộn cho Li_W.

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