Tôi đang làm việc trên một ứng dụng sử dụng ActionBarSherlock. Vì nó là documentation chỉ ra:Biên dịch với Android 4.X nhưng hỗ trợ API Cấp 9
[...] thư viện yêu cầu cả nó và dự án của bạn được biên soạn với Android 4.0 hoặc mới hơn. Dự án cũng yêu cầu rằng bạn đang biên soạn với JDK 1.6 trong cả trình soạn thảo của bạn và bất kỳ hệ thống nào xây dựng mà bạn có thể đang sử dụng.
Vì vậy, điều đó có nghĩa là tôi sẽ biên dịch ứng dụng của tôi (và thư viện) chống lại 4.X Android nhưng trong Manifest của tôi, tôi tuyên bố rằng tôi đang nhắm mục tiêu (ví dụ) API Cấp 9.
này tất cả hoạt động tốt và tốt nhưng có cái gì đó làm phiền tôi. Từ số FAQ:
Tôi nên nhắm mục tiêu mức API nào trong tệp kê khai khi sử dụng thư viện?
Targetting API cấp 11 hoặc mới hơn là bắt buộc vì nó sẽ khiến Android tự động thêm thanh tác vụ gốc khi chạy trên các thiết bị mới hơn. Vì bạn sẽ biên soạn các API mới nhưng ứng dụng của bạn có khả năng sẽ chạy trên các thiết bị có phiên bản cũ hơn của Android chăm sóc thêm để tránh sử dụng hoặc kiểm tra đúng cách và gọi bất kỳ phương thức nào được giới thiệu sau SDK tối thiểu của bạn phiên bản.
Điều đó có nghĩa, rằng tôi sẽ phải tay kiểm tra tất cả các cuộc gọi phương thức, vì vậy tôi không sử dụng bất kỳ mà không có sẵn trong API nhắm mục tiêu Cấp (9 trong trường hợp của tôi)? Điều này nghe có vẻ sai với tôi.
Có cách nào để nói với IDE của tôi (IntelliJ), rằng tôi chỉ sử dụng API cấp 9 (vì vậy tôi không nhận được bất kỳ tự động hoàn thành cho các phương pháp/lớp không tồn tại và không sử dụng chúng do tai nạn) và sau đó chọn biên dịch nó dựa trên phiên bản Android khác?
Hoặc tôi có thể sử dụng một số kiểm tra tự động (chạy lúc biên dịch) để kiểm tra điều đó không?
Đây sẽ là phương pháp * thủ công *. –
Ồ tôi nghĩ bạn có nghĩa là bằng tay bằng cách tra cứu từng cuộc gọi và kiểm tra. Tôi không nghĩ rằng nó làm những gì bạn muốn tự động. Đó là một ý tưởng tốt cho một cập nhật ADT trong tương lai nhưng tôi không nghĩ rằng nó có sẵn hiện tại. Nhưng tôi không chắc chắn! –