2012-01-02 10 views
5

Tôi đang cố gắng sử dụng PhoneGap bên trong một dự án thư viện Android. Dự án thư viện biên dịch tốt nhưng khi tôi cố gắng để bắt đầu một hoạt động kéo dài DroidGap, tôi nhận được lỗi nàyCách bao gồm các tệp jar trong dự án thư viện android

01-02 10:12:17.575: W/dalvikvm(316): Unable to resolve superclass of Lcom/***/***. 

Tôi nghĩ rằng điều này là do các tập tin phonegap.jar không được bao gồm trong các tập tin jar biên soạn của android dự án thư viện. Tôi đã thử sử dụng kiến ​​để xây dựng nhưng nó dường như không hoạt động.

Chỉnh sửa: Tôi đang tạo thư viện Android có thể được sử dụng trong các dự án Android khác. Tôi đang sử dụng tiêu chuẩn android library project nhưng các hoạt động trong dự án lib này mở rộng lớp DroidGap trong phonegap.jar đang gặp lỗi với lỗi trên.

+0

việc kiểm tra này ra: http: // stackoverflow.com/a/6859020/28557 –

+1

có vẻ như hầu hết mọi người không nắm bắt được thực tế rằng JAR bên ngoài của bạn nằm trong dự án thư viện, và sau đó khi bạn cố gắng tham chiếu dự án thư viện của mình từ một dự án Android khác, nó không thể thấy các tệp JAR rằng dự án thư viện phụ thuộc vào - có vấn đề tương tự bản thân mình chỉ phức tạp hơn vì tệp JAR của tôi là giao diện aJNI cho một số lớp C gốc mà tôi cũng muốn chia sẻ trên nhiều dự án! –

Trả lời

0

tạo một thư mục 'lib' trong dự án của bạn. đặt tệp .jar của bạn trong thư mục lib. chọn tập tin .jar của bạn nhấp chuột phải vào, chọn buid path ---> 'add to build'. sẽ thêm tệp .jar của bạn. bây giờ bạn có thể sử dụng các lớp .jar tệp này.

+0

Tôi đã làm điều đó nhưng điều đó dường như không giúp ích gì. Tôi nghĩ rằng hoạt động tốt khi bạn đang đối phó với một dự án Android bình thường nhưng bao gồm các tệp jar trong một dự án thư viện android không hoạt động. – Ashok

+0

tôi đã thử nghiệm và có thể thêm và sử dụng các lớp thư viện Phonegap như bước trên. –

+0

Có hai dự án mà tôi đang sử dụng, một là một dự án android và một dự án khác là thư viện android. Tôi cần phải bao gồm phonegap.jar trong dự án thư viện android. Dự án android sử dụng dự án thư viện android và bắt đầu một hoạt động trong dự án lib android, điều này dường như làm hỏng mọi thứ. Bạn đang làm như vậy, nó làm việc cho bạn? – Ashok

0

Tôi khuyên bạn không nên đặt thư mục 'lib' theo cách thủ công.

Thay vào đó:

Nhấp chuột phải Project -> Properties -

  • Chọn Java Build Path

  • Hãy chắc chắn rằng Libraries là tab được chọn ở đầu

  • Nhấp vào Thêm lọ ngoài

Sau đó tìm JAR của bạn ...

Về cơ bản, giống như cách bạn có thể thêm các PhoneGap.jar

+0

Bạn có đề xuất không liên kết dự án thư viện android, nhưng với liên kết tệp jar được tạo bởi dự án thư viện. Tôi không hiểu điều đó sẽ giúp ích gì. Tôi đã thử nó ra và nó dường như không giúp đỡ – Ashok

+0

Bạn sẽ phải chỉnh sửa câu hỏi của bạn và giải thích thêm với chi tiết cụ thể hơn ... Tôi có thể không hoàn toàn hiểu những gì bạn đang cố gắng làm. Nếu bạn đang liên kết đến một dự án thư viện khác vẫn sẽ hoạt động, bạn sẽ liên kết thư viện đó và sau đó thêm PhoneGap.jar theo cách tôi mô tả. – TryTryAgain

0

ADT (Android Development Tool Eclipse plug-in) đã tích hợp sẵn hỗ trợ cho việc tạo và tham chiếu các dự án thư viện. Xem ví dụ trong phần 5 của số tutorial này.

0

Thử đổi tên thư mục thành libs thay vì lib.

+0

Thư mục "libs" tự động bao gồm các JAR ở đó trong dự án mà chúng đang ở. Nhưng vẫn không bao gồm chúng tự động nếu chúng chỉ nằm trong thư mục libs của dự án được chia sẻ. –

3

Tôi e rằng không thể thực hiện được. Tệp jar kết quả sẽ chứa tất cả các lớp và tài nguyên được xác định trong dự án thư viện android, nhưng sẽ không bao gồm các tệp jar bên ngoài được thêm vào đường dẫn xây dựng. Bạn sẽ phải thêm chúng vào dự án Android cuối cùng của mình bằng thư viện đó. Bạn cũng có thể tìm thấy những câu hỏi tương tự trong SO như this one

+0

Câu hỏi/câu trả lời được liên kết giải thích chi tiết hơn. Nhưng về cơ bản, các dự án Thư viện được chia sẻ là các thùng chứa và trình bao bọc đơn giản. Cuối cùng, nó chỉ nhồi nhét nguồn và tài nguyên vào dự án tiêu thụ; nó không sao chép trong cài đặt hoặc tài liệu tham khảo thư viện, vì vậy chúng phải được sao chép trong dự án tiêu thụ theo cách thủ công. –