2011-02-18 37 views
21

Tôi đang phát triển thư viện SDK Android. Trong thư viện này, tôi đã khai báo và sử dụng một số Hoạt động. Bây giờ tôi đã cố gắng để bao gồm các thư viện trong một ứng dụng nhưng tôi đã nhận thấy rằng tôi phải khai báo tất cả các hoạt động thư viện trong ứng dụng. Đây là một điều rất xấu bởi vì trong thư viện, tôi đã bao gồm rất nhiều hoạt động và nhà phát triển phải sao chép tất cả các hoạt động trong ứng dụng của riêng mình. Có một giải pháp cho điều này?dự án thư viện android và Hoạt động

+2

ý bạn là sao chép các hoạt động sang ứng dụng khác? bạn đang nói về bản kê khai? Nếu có, Google cho biết họ có ý định thêm hợp nhất tệp kê khai trong tương lai nhưng bạn cần sao chép/dán ngay bây giờ. Nếu không, bạn đang làm sai. – schwiz

+0

@schwiz manifestmerger.enabled = true tồn tại ngay bây giờ, nhưng chúng ta nên buộc các nhà phát triển (sử dụng thư viện của tôi trong ứng dụng của họ), để đặt min và target SDK thành mink và mục tiêu của chúng tôi! (nguồn: http://stackoverflow.com/questions/10976635/using-the-new-manifestmerger-property-in-android#21397467) –

Trả lời

25

Không, đây là giới hạn đã biết của các thư viện tại thời điểm này. Có rất nhiều thảo luận trong cộng đồng phát triển Android về việc sửa lỗi này trong tương lai, nhưng bây giờ nó là một hạn chế về cách họ làm thư viện.

Từ doc

Trong file manifest của dự án ứng dụng, bạn phải thêm tờ khai của tất cả các thành phần mà ứng dụng sẽ sử dụng được nhập khẩu từ một dự án thư viện. Đối với Ví dụ, bạn phải khai báo bất kỳ <activity>, <service>, <receiver>, <provider>, và như vậy, cũng như <permission>, <uses-library>, và yếu tố tương tự.

Ngoài ra, câu trả lời tuyệt vời here của Mark Murphy.

+0

Cảm ơn bạn đã trả lời của bạn .. Có lẽ tôi đã sử dụng Dialogs thay vì hoạt động. Điều này có thể tránh được giới hạn này. Bạn có đồng ý không? – ets23

+0

(ngoài ra: tôi không cần phải tạo một cái lọ) – ets23

+0

Phần duy nhất của thư viện của bạn sẽ cần phải có trong dự án tiêu thụ là khai báo trong tệp kê khai android. Tôi không chắc chắn ý của bạn về việc sử dụng hộp thoại thay vì hoạt động. –

21

Cập nhật 1: Khi sử dụng Gradle, việc hợp nhất tệp kê khai được thực hiện tự động. Thêm chi tiết về cách thức hoạt động và làm thế nào để giải quyết xung đột có thể được tìm thấy here (cảm ơn cho guy.gc nhận xét)

Original post:

Để cập nhật chủ đề này: auto merge tại là có thể. Bạn chỉ phải thêm

manifestmerger.enabled=true 

vào project.properties của bạn. Using the new "manifestmerger" property in Android cũng thảo luận về điều này.

Tôi biết đây là một chủ đề cũ nhưng tôi chỉ vấp vào nó và muốn ngăn chặn những người khác (tôi bao gồm) từ suy nghĩ nó là không thể. Một dòng này là hoàn toàn đủ trong các dự án của tôi để sử dụng các hoạt động trong ứng dụng thư viện.

+1

Thực tế việc hợp nhất tệp kê khai được thực hiện tự động. http://developer.android.com/tools/building/manifest-merge.html Nếu cần, bạn có thể xác định cách xung đột được giải quyết –

+1

Cảm ơn nhận xét @ guy.gc, tôi sẽ cập nhật câu trả lời –

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