Làm cách nào để đính kèm nguồn Thư viện hỗ trợ Android trong Eclipse?


79

Có mã nguồn được gắn vào các thư viện bên ngoài thật tuyệt vời. Tôi tìm mã nguồn cho gói hỗ trợ v4 ở đâu? Tốt hơn, nó sẽ là một tệp zip có thể dễ dàng đính kèm vào android-support-v4.jartrong Eclipse.


4
imo câu trả lời @andr là một chấp nhận
Amir Uval

Câu trả lời:


66

Sau khi tải xuống gói hỗ trợ từ Trình quản lý SDK Android, bạn có thể tìm thấy mã nguồn của gói hỗ trợ trong thư mục <android-sdks> / extras / android / support / v4 / src.


12
Trong trường hợp của tôi, nó đã được lưu trữ trong C:\Program Files\Android\android-sdk\extras\android\compatibility\v4\src\java. Sau đó tôi đã nội dung của nó (thư mục android) một đóng gói nó lên thành một .jar * với lệnh này: jar cf android-support-v4-sources.jar android/. Tôi đã đính kèm jar này vào android-support-v4.jar (cài đặt đường dẫn / thư viện xây dựng java trong eclipse). Làm việc thoải mái :)
Håvard geithus

5
Điều này dường như không hoạt động bây giờ. Làm thế nào tôi có thể làm cho nó hoạt động? giúp đỡ Tôi đang sử dụng adt 21.1. Nguồn tài liệu hoặc nguồn java của android-support-v4.jar là không thể sửa đổi. Nhấp chuột phải vào dự án, Thuộc tính> Đường dẫn xây dựng Java> Tab Thư viện, Thư viện riêng của Android> android-support-v4.jar - Nguồn đính kèm: (Không có) - không thể sửa đổi. :(
Thupten

3
Ok. Làm cho nó hoạt động. Nhu android-support-v4.jar được trong Referenced Librariesbằng cách click chuột phải, Build Path.., Add to Path. Sau đó Referenced Libraries, nhấp chuột phải vào thuộc tính trên android-support-v4 và đặt các nguồn.
Thupten

Câu trả lời này hoàn toàn trả lời câu hỏi của OP. Để gắn nó vào file jar của bạn trong eclipse xem câu trả lời bằng cách @andr
JRomero

@Thupten, Bạn không tham chiếu hai lần thì khi nào một cái là đủ?
Pacerier

122

Tôi chỉ muốn thêm một phương pháp đính kèm nguồn khác cho thư viện hỗ trợ. Nó yêu cầu ADT trong phiên bản 20 trở lên . Phương pháp này được cho là hoạt động đối với tất cả các JAR mà vùng chứa đã tắt cài đặt vị trí nguồn / javadoc. Đây là những gì bạn cần làm:

  1. Các android-support-v4.jardối trá thư viện trong libsthư mục của dự án của bạn. Trong cùng thư mục đó, hãy tạo một tệp thuộc tính Java thông thường có tên giống hệt như JAR được đề cập, nhưng có .propertiesphần mở rộng được thêm vào . Vì vậy, đối với thư viện hỗ trợ của chúng tôi nó sẽ là:
    android-support-v4.jar.properties.

  2. Mở tệp thuộc tính đã tạo và đặt giá trị của thuộc tính được đặt tên srccho vị trí có thể tìm thấy nguồn cho thư viện đó. Tệp của bạn phải có một dòng như:

    src=c:/apps/adt-bundle-windows-64bit/sdk/extras/android/support/v4/src
    
  3. Lưu các tập tin.

  4. Đóng và mở lại dự án Android của bạn.

  5. Thử duyệt đến một trong các lớp hỗ trợ. Phần đính kèm nguồn sẽ hoạt động ngay bây giờ.

Hoạt động hoàn hảo trong trường hợp của tôi.

Một điều cần lưu ý: nếu srckhông phải là một đường dẫn tuyệt đối, nó sẽ được giải quyết bắt đầu từ thư mục mẹ của tệp JAR. Lấy thư viện hỗ trợ làm ví dụ - nếu src=support/src, ADT sẽ giả định rằng các nguồn lớp được đặt trong libs/support/src.

Mô tả ngắn gọn về tính năng này được viết bởi tác giả của nó có thể được tìm thấy ở đây .

Nếu bất kỳ ai quan tâm đến cách chính xác .propertiestệp này được xử lý, tôi khuyên bạn nên đọc bộ vá lỗi số 4, đặc biệt. thay đổi trong eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/ internal/project/LibraryClasspathContainerInitializer.java:)

Biên tập

Cũng vui lòng xem một nhận xét tốt của WindRider về việc thêm nguồn đúng cách trong một dự án có nhiều thư viện được tham chiếu.


9
Đây là cách 'chính thức' và được khuyến nghị để làm điều đó.
BoD

10
Lưu ý rằng nếu bạn có một dự án lớn với nhiều thư viện được tham chiếu đến lượt chúng tham chiếu đến lib hỗ trợ android, bạn phải đảm bảo rằng tất cả các bản sao của android-support-v4.jar đều là các tệp nhị phân giống nhau. Nếu không, bạn sẽ gặp một lỗi lạ "checksum mismatch bla bla". Ngoài ra, chỉ một trong các bản sao lib hỗ trợ này sẽ được nhập, có thể một bản được chứa trong thư mục lib \ của các dự án thư viện. Để xem cái nào được sử dụng, hãy mở Package Explorer -> Android Dependencies và xem lib hỗ trợ được nhập từ đâu. Sau đó, thực hiện quy trình tương tự không phải cho dự án chính, mà cho dự án thư viện.
WindRider

2
Sau khi thử một số phần còn lại, tôi có thể nói rằng đây là câu trả lời tốt nhất - nên được chấp nhận là câu đúng.
Amir Uval

2
@Simulant - Tôi không phải là chuyên gia về ActionBar compat lib, nhưng nhìn sơ qua thì tôi đoán rằng để sử dụng nó, bạn phải nhập nó dưới dạng một dự án Android Lib riêng biệt và tham chiếu nó như một phần phụ thuộc trong dự án chính của bạn, phải không? Nếu vậy, bạn chỉ cần làm theo các bước được mô tả ở đây cho dir "libs" của dự án lib . Dir đó phải có hai .jartệp: android-support-v4.jarandroid-support-v7-appcompat.jarbạn sẽ có thể tạo .propertiescác tệp được đề cập .
andr

5
Nếu bạn đang sử dụng Windows, hãy đảm bảo bạn sử dụng dấu gạch chéo lên trên srcdòng.
Scutterman

83

Đây là giải pháp để đính kèm nguồn của thư viện hỗ trợ trong Eclipse Juno

Tôi cho rằng dự án của bạn đã có android-support-v4.jartrong "Đường dẫn xây dựng", trong "Phụ thuộc Android", nhưng bạn không thể đính kèm thư mục nguồn vào nó. ("Phần đính kèm nguồn" cho biết "Không thể sửa đổi"). Giải pháp:

  • Goto "Định cấu hình đường dẫn xây dựng"
  • Thêm JAR bên ngoài> YourProject/libs/android-support-v4.jar (Tôi biết dự án của bạn đã được tham chiếu đến nó nhưng đừng lo, chỉ cần thêm lại).
  • Mở rộng bình và gắn Nguồn vào Bình ngoài: android-sdk/extras/android/support/v4/src
  • Chuyển sang tab "Đặt hàng và xuất", kéo hộp bên ngoài lên phía trên "Phụ thuộc Android"

Thích điều hướng thư viện hỗ trợ với nguồn!

nếu bạn có "Dự án thử nghiệm Android" được đính kèm YourProject, vì vậy YourProjectTestcó thể không được biên dịch nữa. Trong trường hợp này, bạn phải quay lại "Đặt hàng và xuất" và kéo bình bên ngoài xuống bên dưới "Phụ thuộc Android" để mọi thứ trở lại bình thường.


2
"Đường dẫn xây dựng Java" chứ không phải "Đường dẫn xây dựng cấu hình" cho tôi.
user123321 11/12/12

4
Điều này có tất cả các bước cần thiết và hiệu quả với tôi! Bước cuối cùng (đặt hàng) đã được bỏ qua cho những người khác và rất quan trọng.
cottonBallPaws

3
Tôi đã android-support-v4.jar liệt kê trong Android Private Libraries (APL, được liệt kê ở trên Android Dependencies) vì vậy tôi đã phải kéo mới được bổ sung .jar trên APL
Kuitsi

1
Đối với bản ghi, điều này cũng hoạt động với các thư viện khác, không chỉ thư viện hỗ trợ. / Thuyền trưởng rõ ràng
Emil Lundberg

2
Bạn không cần phải làm điều này. Nó đi ngược lại thiết lập ban đầu của một ứng dụng Android tiêu chuẩn. Tôi khuyên bạn nên sử dụng giải pháp "chính thức" của @andr.
JRomero

16

Tham khảo câu trả lời được chấp nhận, cũng có thể đính kèm nguồn trực tiếp từ thư mục mà không cần tạo tệp .jar. Từ tab đường dẫn / thư viện bản dựng Java, mở rộng android-support-v4.jar, đánh dấu "Phần đính kèm nguồn", nhấp vào "Chỉnh sửa ...", "Thư mục bên ngoài ..." rồi trỏ tới (android-sdk) \ extras \ android \ support \ v4.

Điều này đã được kiểm tra bằng cách sử dụng chàm nhật thực.

Từ các ý kiến:

Sự cố không thể thêm nguồn vào thư viện hỗ trợ dường như xảy ra nếu thư viện hỗ trợ của bạn nằm trong thư mục "Phụ thuộc Android" trong dự án của bạn. Cách giải quyết là từ cùng một tab "Đường dẫn xây dựng Java / thư viện", nhấp vào "Thêm JAR bên ngoài ..." và tìm tệp .jar trong đường dẫn (android-sdk) \ extras \ android \ support \ v4 của bạn. Sau đó, nó sẽ xuất hiện trong thiết lập dự án của bạn trong thư mục "Thư viện được tham chiếu" mới.


5
Tất nhiên, nếu bạn không có lỗi không cho phép bạn gắn nguồn vào bình.
Ixx

1
Điều này thật tuyệt vời nhưng nút "chỉnh sửa" của tôi chuyển sang màu xám: /. Đó có phải là lỗi mà bạn đề cập đến lxx? Tìm thấy một giải pháp?
span

3
Đó là tất cả màu xám, nó nói "không thể thay đổi được"
Mister Smith

2
Sự cố không thể thêm nguồn vào thư viện hỗ trợ dường như xảy ra nếu thư viện hỗ trợ của bạn nằm trong thư mục "Phụ thuộc Android" trong dự án của bạn. Cách giải quyết là từ cùng một tab "Đường dẫn xây dựng Java / thư viện", nhấp vào "Thêm JAR bên ngoài ..." và tìm tệp .jar trong đường dẫn (android-sdk) \ extras \ android \ support \ v4 của bạn. Sau đó, nó sẽ xuất hiện trong thiết lập dự án của bạn trong thư mục "Thư viện được tham chiếu" mới. Sau đó, bạn có thể đính kèm nguồn vào tệp .jar này như được chỉ ra trong câu trả lời ban đầu.
happydude

2

Đối với những người thích tiêu chuẩn phải có tệp jar của mã nguồn, giúp thuận tiện hơn cho việc kiểm soát nguồn và chia sẻ dự án.

Ví dụ:

../android-support-v4.jar
../android-support-v4-src.jar

Thật đơn giản để tạo tệp jar nguồn và đính kèm nó:

  1. cd tới path_to_android_sdk / extras / android / tương thích / v4 /
  2. Sử dụng chương trình zip yêu thích của bạn như 7-zip để tạo tệp zip và đặt tên là android-support-v4-src.jar. Thư mục đầu tiên trong jar phải là / scr.
  3. Sao chép tệp vào dự án của bạn, trong ví dụ này, tệp nằm trong cùng thư mục với lọ mã.
  4. Trong Eclipse, hãy đính kèm jar nguồn trong các thuộc tính của dự án.

Cảm ơn câu trả lời của bạn. Để tạo kho lưu trữ jar, cũng có thể sử dụng chương trình jar có trong JDK.
Håvard Geithus

1

Tôi chỉ cần xóa cái được tạo tự động, sau đó thêm thủ công nó làm Thư viện tham chiếu.

Đầu tiên hãy mở một lớp, IDE sẽ yêu cầu bạn Thay đổi Nguồn đính kèm.


0

Quá trình đính kèm src và doc từ đường dẫn xây dựng hoạt động đối với một số người và nó không phù hợp với một số người (như tôi). một số điều chính cần ghi nhớ

  1. Đảm bảo rằng bạn đang ở trong Package Explorer, không phải Project Navigator .

  2. Nếu bạn đã đặt android-support-v4.jar của mình trong thư mục libs trong dự án của bạn. tuyệt quá.

  3. Nhấp chuột phải vào bình, Xây dựng đường dẫn .. Thêm vào Đường dẫn. (nếu Add to Path không hiển thị thì nó đã được thêm. Bạn sẽ thấy đường dẫn cấu hình ..)

  4. Kết quả của bước 3, một thư mục mới có tên Thư viện được tham chiếu sẽ xuất hiện trong cây khám phá gói. Mở cây đó, tìm android-support-v4.jar ở đó. Nhấp chuột phải vào bình này trong các thuộc tính, Thư viện tham chiếu . Sau đó đặt Phần đính kèm nguồn Java và Vị trí Javadoc ở đó.

  5. Bạn xong việc rồi.

Đường dẫn cho Phần đính kèm Nguồn Java của tôi. (Vị trí bên ngoài của nó)

C: / Users / thupten / adt-pack-windows-x86_64-20130514 / sdk / extras / android / support / v4 / src

Tôi đã sử dụng tài liệu trang web android cho vị trí tài liệu java

http://developer.android.com/reference/android/support/v4/app/package-summary.html


0

Tôi tìm thấy cái này cho tôi:

Đối với lib chính: android.jar:

src: sdk / sources / android-19 doc: sdk / docs / reference /

Đối với hỗ trợ lib: android-support-v4.jar: (trước đó chúng ta nên thêm android-support-v4.jar như bên ngoài jar (Thuộc tính dự án -> Đường dẫn xây dựng Java -> Thư viện, sau đó trong Tab 'Đặt hàng và xuất' 'kéo lên thư viện này trước Thư viện riêng của Android)):

src: sdk / extras / android / support / v4 / src / java doc: http://developer.android.com/reference/android/support/v4/app/package-summary.html (không chắc chắn)


0

Sau khi bạn đã cập nhật SDK và tải xuống Tài liệu trong đó:

  • Nhập dự án thư viện hỗ trợ vào trình khám phá gói.
  • Tạo một thư mục trong thư viện và đặt tên giống như vậy ext-jars.
  • Di chuyển android-support-v4.jarđến ext-jarsthư mục.

    nhập mô tả hình ảnh ở đây

  • Nhấp chuột phải vào dự án và nhấp vào Thuộc tính.
  • Nhấp vào Java Build Path ở menu bên trái, sau đó chọn tab Thư viện.
  • Nhấp vào Add JARs...sau đó mở rộng dự án và chọn tệp jar bạn đã chuyển vào thư mục ext-jars.

nhập mô tả hình ảnh ở đây

  • Mở rộng lọ đã thêm và chọn Source attachmentsau đó nhấp vào Edit.
  • Chọn External locationrồi bấm vàoExternal Folder...
  • Chọn thư mục nguồn cho Hỗ trợ v4 nằm trong [sdk-path]/extras/android/support/v4/src

nhập mô tả hình ảnh ở đây

  • Chọn Javadoc locationnhấp vào Editsau đó chọn Javadoc URLsau đó nhấp vào Browse...và chọn vị trí javadoc để hỗ trợ v4 được đặt tại[sdk-path]/docs/reference/

nhập mô tả hình ảnh ở đây - Chọn Order and Exporttab và kiểm tra android-support-v4.jarbạn vừa thêm.

Tôi khuyên bạn cũng nên làm sạch dự án và mở lại Eclipse.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.