2012-02-11 61 views
5

Tôi có hai dự án Android, một thư viện được chia sẻ và ứng dụng. Bây giờ tôi muốn biên dịch ứng dụng với sự phụ thuộc vào thư viện. Trong Eclipse, nó hoạt động rất tốt. Sau đó, tôi tải nó qua git vào kho của tôi và kích hoạt Jenkins để xây dựng cả hai dự án.Ant xây dựng dự án Android với phụ thuộc lib

Vấn đề của tôi là, lỗi xảy ra: "sdk/android-sdk-linux/tools/ant/build.xml: 440: ../shared-lib giải quyết một đường dẫn không có tệp project.properties cho dự án ". Điều đó rõ ràng, bởi vì trong Jenkins các công việc được lưu trữ khác với Eclipse.

Một vấn đề khác là Eclipse biên dịch chia sẻ thành ".jar" và Ant đã biên dịch nó thành "classes.jar" (được đặt tên trong sdk/android-sdk-linux/tools/ant/build.xml).

+0

Tôi không nhận được câu hỏi ở đây. bạn cũng có thể bao gồm các kịch bản kiến ​​(hoặc trích xuất từ ​​nó) và cách bạn tạo ra nó nếu có. –

+0

Tôi đang sử dụng build.xml được tạo bởi Android với ** update-project ** và _project.properties_ của tôi bao gồm ** android.library.reference.1 = ../shared-lib **. Bạn có muốn bất kỳ tệp nào khác không? – mars3142

Trả lời

1

Tôi đã sửa nó bằng các tệp sao chép. Dự án đầu tiên xây dựng shared-lib.jar của tôi. ojects (điện thoại và máy tính bảng) sao chép tệp này (shared-lib.jar) vào đó libs -folder và xây dựng chính xác. Nhưng bây giờ tôi có khác nhau projects.properties trên máy chủ và máy khách của tôi. Điều này không được kiểm tra trong git.

+0

Bạn có thể giải thích cách bạn đã sử dụng kiến ​​hoặc Jenkins để sao chép các tệp trên máy chủ xây dựng không? Tôi là một newb kiến ​​hoàn toàn vì vậy đừng ngại ngớ ngẩn nó xuống. :) –

+0

Xem http://stackoverflow.com/questions/9239131/ant-build-android-project-with-dependency-lib/9277001#comment11638044_9239303 Tôi đã sử dụng tác vụ sao chép trong kiến. – mars3142

4

Tập lệnh kiến ​​nên cho phép bạn bao gồm bất kỳ tệp nào bạn cần. Trong trường hợp của bạn, tôi sẽ đề nghị bạn di chuyển tham chiếu đến tệp shared-lib tới local.properties (tệp này cũng phải được đọc bởi tập lệnh kiến ​​do dự án cập nhật tạo. Đọc đường dẫn đầy đủ cho jenkins trong kho lưu trữ và sửa đổi tệp cục bộ cho địa phương . xây dựng trong tập tin trong kho bạn sẽ cần phải có một cái gì đó như:

android.library.reference.1=../classes.jar 

EDIT Bằng cách này đề nghị của tập tin thuộc tính thứ hai là chỉ vì tập tin này thực sự có nghĩa là để kho lưu trữ thuộc địa điểm cụ thể

+0

Tôi có thể làm gì để sao chép 'classes.jar' vào thư mục' libs' trong tệp build.xml của tôi trong môi trường 'post-build'. Đó sẽ là cách thông minh hơn, tôi nghĩ vậy. – mars3142

+1

Có lệnh chống sao chép mà bạn có thể xem tại đây: http://ant.apache.org/manual/Tasks/copy.html. Tuy nhiên, bạn cũng có thể dễ dàng thêm các lọ bổ sung vào các đường dẫn xây dựng. Tôi không biết mức kiến ​​thức của bạn về kiến, nhưng điều này cũng tương đối dễ tìm trong mạng. Viết lại nếu bạn cần giúp đỡ theo hướng này. –

+0

Tôi hoàn toàn mới để kiến: ( – mars3142

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