Ngay summerized, cấu trúc dự án của tôi là như sau:
- Một và B là android lib -projects, nơi B phụ thuộc vào Một
- C (dự án android bình thường) phụ thuộc vào B
- T được thử nghiệm dự án của CKhông tự động Android UI-Các xét nghiệm trên Jenkins-Server do phụ thuộc lib dự án phức tạp của dự án chính (s)
Tôi có tương ứng hai dự án trên máy chủ Jenkins của tôi, một cho C và một cho T, có kịch bản riêng của họ cho xây dựng, sử dụng lệnh thực sự chỉ android và kiến. Vì vậy, không có vấn đề với việc xây dựng C, nhưng tôi không thể xây dựng công trình của T.
"Công việc" nên có nghĩa là, tùy thuộc vào tập lệnh, nó không biên dịch hoặc thất bại khi chạy vì một số lớp bị thiếu, thực sự không thể hoặc không vượt qua giai đoạn dexing vì thêm các bản sao.
Vì vậy, rõ ràng, có điều gì đó sai với các phụ thuộc, nhưng điều thú vị là nó hoạt động rất tốt đẹp trên máy cục bộ với eclipse & trên trình giả lập.
Vì vậy, đây là một ví dụ mã vỏ kịch bản, mà thực sự nên làm việc và tạo ra một gói ứng dụng-file:
cd project-test
android update test-project -m ../projectC -p .
ant clean debug
Điều này làm tiếc rằng một số các lớp học từ từ B, rằng tôi cũng sẽ kiểm tra, không thể tìm được từ trình biên dịch java và tôi nhận được luôn lỗi như thế này:
...
[javac] Compiling 14 source files to /home/mehmed/git/project/test-project/bin/classes
[javac] SomeActivityTest.java:8: package com.mydomain.portal.android.project.activity does not exist
[javac] import com.mydomain.portal.android.project.activity.SomeClass1;
[javac] ^
[javac] SomeActivityTest.java:9: package com.mydomain.portal.android.project.data does not exist
[javac] import com.mydomain.portal.android.project.data.SomeClass2;
[javac] ^
[javac] SomeActivityTest.java:10: package com.project.portal.android.project.util does not exist
[javac] import com.mydomain.portal.android.project.util.SomeClass3;
[javac] ^
...
tôi đã thử gần như mọi thứ có thể để khắc phục điều đó, thậm chí bằng tay chỉnh sửa các tập tin project.properties và bao gồm cả chỉ B hoặc B và C cùng lúc như lib dự án như thế này:
cd project-test
android update test-project -m ../projectC -p .
echo "android.library.reference.1=../projectB" >> project.properties
# or even also projectA:
echo "android.library.reference.2=../projectA" >> project.properties
ant clean debug
mà kết quả lần này trong Dexing lỗi vì trùng lặp thêm các lớp từ lib dự án.
Có ai có ý tưởng về việc sửa lỗi này không? Nhờ sự giúp đỡ trước!
cảm ơn câu trả lời, nó thực sự hữu ích tôi vừa thành công để sửa lỗi. tiếc là đã xuất hiện một lỗi khác. xin vui lòng xem phản ứng của tôi trên http://b.android.com/21720 –