2012-01-13 26 views
6

tôi đi qua một bình luận this answer trong đó nêu rằng một dự án thư viện:Tại sao không thể đặt một .aidl vào một dự án thư viện?

  1. không thể giữ .aidl file,
  2. không thể phụ thuộc vào một dự án thư viện,
  3. không thể giữ tài sản

Vâng , bình luận đó đã được thực hiện khoảng một năm rưỡi trước, và tôi có thể nói chắc chắn rằng mục số 2 không còn đúng (September 2010?), bởi vì tôi có một dự án làm việc hoàn hảo, được tạo thành từ một dự án thư viện phụ thuộc vào dự án thư viện khác.

Vì vậy, câu hỏi của tôi là hai:

  1. Là nó vẫn còn đúng là một dự án thư viện không thể giữ .aidl file?
  2. Nếu câu trả lời cho # 1 là có, thì lý do cho điều này là gì?

BTW, như một thử nghiệm, tôi đã cố gắng để đặt IMarketBillingService.aidl (từ mẫu thanh toán trong ứng dụng) trong một dự án thư viện (không có bất cứ điều gì mà sử dụng nó chưa), và dự án xây dựng và chạy như trước. Vì vậy, nếu dự án thư viện có thể chứa .aidl, điều này phải là một cái gì đó sâu hơn ...

Trả lời

6

Câu trả lời là 'Không'. Bạn có thể sử dụng tệp AIDL trong các dự án thư viện tốt. Tôi sử dụng một thiết lập như vậy trong ba dự án khác nhau. Đừng nhớ chính xác khi nào, nhưng họ đã sửa lỗi này một lúc trước (có lẽ khi họ thêm hỗ trợ thư viện-thư viện vào ADT). Lý do nó không hoạt động trước đó là trình xây dựng ADT không nhận ra tệp AIDL và không tạo ra các đoạn Java cần thiết.

+0

Cảm ơn! Nó chỉ ra rằng một hạn chế khác đã được gỡ bỏ gần đây: [Tạo một dự án thư viện vào tệp JAR của riêng nó] (http://developer.android.com/guide/developing/projects/index.html#LibraryProjects). Lưu ý rằng tài liệu trên cùng một trang mâu thuẫn với chính nó, nhưng tôi vừa thử nghiệm tính năng mới này và bạn có thể tạo một JAR từ một dự án thư viện ** độc lập **, mà không phụ thuộc vào một dự án ứng dụng. –

+2

Có, bạn có thể tạo một JAR. Tuy nhiên, jar không chứa bất kỳ tài nguyên nào, vì vậy nếu bạn có bố cục, chuỗi, v.v. trong dự án thư viện, bạn không thể chỉ thả bình trong dự án ứng dụng của mình. Theo dõi trang web ADT trực tiếp để biết thông tin cập nhật nhất, tài liệu đôi khi đã lỗi thời. https://sites.google.com/a/android.com/tools/recent/ –

+0

+1 khác cho liên kết đến https://sites.google.com/a/android.com/tools/recent/ - I không biết về trang đó. Điều này rất hữu ích. Cảm ơn! –

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