Cách tốt nhất để kết hợp Volley (hoặc thư viện khác) vào dự án Android Studio


81

Tôi đã thấy nhiều lời khuyên khác nhau về cách tốt nhất để làm điều này Câu hỏi này bao gồm việc tạo một cái lọ. Ở những nơi khác, tôi đã thấy lời khuyên chỉ cần sao chép nguồn volley vào dự án của riêng bạn. Phần này trên các thư viện tại android.com sẽ có vẻ có thẩm quyền nhất. Tuy nhiên, sau khi biên dịch volley, tôi không có thư viện aal, trong khi phần đó nói rằng tôi nên có.

Vì vậy, câu hỏi của tôi là: Tôi có một dự án Android Studio hiện có với bố cục tiêu chuẩn và kho lưu trữ git; tôi nên làm gì để thêm volley? Tôi nên tải nó xuống ở đâu? Tôi nên thêm nó vào Android Studio như thế nào? Tôi cần sửa đổi những tệp Gradle nào, nếu có.

Hy vọng rằng đối với những người trong số các bạn đã làm điều này một vài lần, đây sẽ là thứ bánh mì và bơ, nhưng tôi không thể tìm thấy một mô tả đơn giản.

-

Đang cập nhật , theo gợi ý của Scott Barta.

Tệp gradle.build trong kho lưu trữ volley có dòng này.

apply plugin: 'android-library'

Theo tài liệu : "Các dự án thư viện không tạo APK, chúng tạo gói .aar (viết tắt của kho lưu trữ Android). " Tuy nhiên, khi tôi xây dựng dự án volley, không có .aar nào được tạo.

Cảm giác của tôi là Volley là một dự án thư viện, được tạo bởi nhóm Android, nó có lẽ được tạo ra và sử dụng dưới dạng gói .aar. Mọi lời khuyên về việc liệu có nên tạo .aar hay không và cách thực hiện điều đó, sẽ được đánh giá cao.


có thể trùng lặp của Android Studio + Volley
Scott Barta

Điều đó sẽ giúp bạn có được hầu hết các con đường đến đó. Nếu bạn vẫn gặp khó khăn và gặp vấn đề, hãy tinh chỉnh câu hỏi của bạn hoặc hỏi một câu hỏi mới nếu nó khác biệt đáng kể.
Scott Barta

Nếu bạn muốn sử dụng Volley như một mô-đun phụ thuộc, bạn có thể tham khảo liên kết .
cmoaciopm

Lưu ý rằng liên kết của @ ScottBarta đã được đánh dấu là bản sao của thư viện mạng android volley .
Brian Marick,

Có lời giải thích rất chi tiết để đạt được điều này trong liên kết sau: gitsubmoduleasandroidtudiomodule.blogspot.in
Arpit Ratan

Câu trả lời:


125

CẬP NHẬT MỚI NHẤT:

Sử dụng phiên bản chính thức từ jCenter để thay thế.

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}

Các phần phụ thuộc bên dưới trỏ đến bóng chuyền không dùng nữa không còn được duy trì.

CÂU TRẢ LỜI GỐC

Bạn có thể sử dụng điều này trong phần phụ thuộc của tệp build.gradle để sử dụng volley

  dependencies {
      compile 'com.mcxiaoke.volley:library-aar:1.0.0'
  }

ĐÃ CẬP NHẬT:

Nó không phải chính thức nhưng là một bản sao của Volley chính thức. Nó thường xuyên được đồng bộ hóa và cập nhật với Kho lưu trữ Volley chính thức nên bạn có thể tiếp tục sử dụng mà không cần lo lắng.

https://github.com/mcxiaoke/android-volley


7
Nhập lưu ý rằng đó không phải là repo chính thức cho Volley. Đó chỉ là thứ mà ai đó đã tải lên trung tâm maven. (AFAIK)
pjco

2
ya Tôi biết người đàn ông đó nhưng không có sự khác biệt chỉ là một tấm gương, hoàn toàn giống nhau và được đồng bộ hóa với kho lưu trữ volley chính thức1.0.1 (cập nhật tại 2014.02.13). Đó là vẻ đẹp của mã nguồn mở nên đừng lo lắng bạn có thể sử dụng nó. github.com/mcxiaoke/android-volley
pyus13

16
Không cố gắng để tất cả mọi người hoang tưởng nhưng người duy trì kho lưu trữ đó có thể khá dễ dàng trượt vào một số thứ mờ ám ... Hãy tiến hành thận trọng nếu bạn không đích thân kiểm tra kho lưu trữ.
mgalgs


8
Vui lòng xem câu trả lời của tôi bên dưới, hiện đã có mục tiêu Volley chính thức do Google xuất bản ( com.android.volley:volley:1.0.0)
Sam Stern

138

Như đã chỉ ra bởi những người khác, Volley đã chính thức có sẵn trên Github :

Thêm dòng này vào phụ thuộc gradle của bạn cho volley:

compile 'com.android.volley:volley:1.0.0'


Để cài đặt volley từ nguồn, hãy đọc bên dưới:

Tôi muốn giữ kho lưu trữ bóng chuyền chính thức trong ứng dụng của mình. Bằng cách đó, tôi lấy nó từ nguồn chính thức và có thể nhận được các bản cập nhật mà không phụ thuộc vào bất kỳ ai khác và giảm bớt những lo ngại do người khác bày tỏ.

Đã thêm volley làm mô-đun con cùng với ứng dụng.

git submodule add -b master https://github.com/google/volley.git volley

Trong settings.gradle của tôi, đã thêm dòng sau để thêm volley làm mô-đun.

include ':volley'

Trong app / build.gradle của tôi, tôi đã thêm phần phụ thuộc biên dịch cho dự án volley

compile project(':volley')

Đó là tất cả! Volley hiện có thể được sử dụng trong dự án của tôi.

Mỗi khi tôi muốn đồng bộ mô-đun volley với repo của Google, tôi chạy nó.

git submodule foreach git pull

7
Tại sao đây không phải là giải pháp ưu tiên? Như tôi thấy, bạn nhận được phiên bản chính thức, cập nhật dễ dàng và mối ràng buộc ngữ nghĩa giữa dự án của bạn và các phụ thuộc của nó. Có lý do chính đáng nào để chọn các phương pháp khác hay chỉ là các phương pháp khác là quy trình chuẩn trong cộng đồng Android?
Andreas Hagen

2
Tôi nghĩ rằng đây là giải pháp ưa thích nhưng không được tài liệu đúng bởi google. Ngoài ra, ngoài các mối quan tâm bảo mật khác được đề cập ở trên, việc lấy nó từ nguồn chính thức cho phép bạn kiểm soát cập nhật thư viện (sớm hoặc muộn tùy thích).
shauvik

3
cảm ơn rất nhiều. điều duy nhất tôi cần thêm là vị trí của thư viện volley trong settings.gradle: project (': volley'). projectDir = new File ('library / volley') vì tôi đã đặt nó trong thư mục thư viện
Björn Kechel

Cảm ơn rất nhiều ! Đây sẽ là câu trả lời chính thức
Vivek Singh

Không cần thiết phải yêu cầu kiểm soát phiên bản để thực hiện công việc của người quản lý gói.
Rikki Gibson

26

Ngày nay

dependencies {
    compile 'com.android.volley:volley:1.0.0'
}   

Rất nhiều cách khác nhau để làm điều đó trong ngày (câu trả lời ban đầu)

  • Sử dụng các tệp nguồn từ git (một cách khá thủ công / chung được mô tả ở đây)

    1. Tải xuống / cài đặt ứng dụng git (nếu bạn chưa có trên hệ thống của mình): http://git-scm.com/downloads (hoặc quagit clone https://github.com/git/git ... sry bad, nhưng không thể cưỡng lại được ^^)
    2. Hành hình git clone https://android.googlesource.com/platform/frameworks/volley
    3. Sao chép comthư mục từ bên trong [path_where_you_typed_git_clone]/volley/srcvào app/src/main/javathư mục dự án của bạn (Thay vào đó hãy tích hợp nó, nếu bạn đã có thư mục com ở đó !! ;-))

    Các tệp hiển thị ngay lập tức trong Android Studio. Đối với Eclipse, bạn sẽ phải right-clickvào srcthư mục và nhấn refresh(hoặc F5) trước.

  • Sử dụng gradle qua gương maven "không chính thức"

    1. Trong src/build.gradletệp dự án của bạn, hãy thêm phụ thuộc volley sau:

      dependencies {
          compile fileTree(dir: 'libs', include: ['*.jar'])
          // ...
      
          compile 'com.mcxiaoke.volley:library:1.+'
      }
      
    2. Nhấp vào Try Againcái nào sẽ xuất hiện ngay trên đầu tệp hoặc chỉ Buildnó nếu không

    "Lợi thế" chính ở đây là, điều này sẽ giữ cho phiên bản được cập nhật cho bạn, trong khi trong hai trường hợp khác, bạn sẽ phải cập nhật volley theo cách thủ công.

    Về mặt "nhược điểm", nó không chính thức từ google, mà là một máy nhân bản hàng tuần của bên thứ ba.

    Nhưng cả hai điểm này đều thực sự tương đối với những gì bạn cần / muốn. Ngoài ra nếu bạn không muốn cập nhật, chỉ cần đặt các phiên bản mong muốn có thay vì ví dụ compile 'com.mcxiaoke.volley:library:1.0.7'.


Trong Android Studio 1.0.2, bạn không cần phải nhấp chuột phải vào lọ để thêm nó. Các quy tắc Gradle mặc định sẽ tự động thêm nó vào. Ngoài ra, nếu bạn là người dùng Studio mới, bạn có thể ngạc nhiên khi jar không hiển thị trong Chế độ xem dự án. Nó được lọc ra bởi cài đặt "Android" trong con quay ngay phía trên chế độ xem. Thay đổi nó thành "Dự án" để thấy rằng bạn đã thực sự hoàn thành một điều gì đó.
Brian Marick

Thật tốt khi biết, thx! Đã xóa nó khỏi câu trả lời! Nhưng như lưu ý đối với người dùng beta: Nếu bạn chọn tùy chọn đầu tiên (thêm nó làm thư viện), bạn cũng sẽ cần right-clickbật volley.jartrong libsthư mục trong Android Studio và chọn Add As Library...để nó có sẵn trong dự án của bạn.
Levite

1
@Levit, Về dấu đầu dòng thứ hai - "Sử dụng các tệp nguồn từ git (một cách khá thủ công / chung được mô tả ở đây)" Tôi đang sử dụng android studio. Tôi đã thêm các thư viện vào dự án của mình và chỉnh sửa settings.gradle và các phụ thuộc. Nó đang hoạt động tốt nhưng tôi nhận được thông báo cho biết đã phát hiện thấy root Vcs chưa đăng ký, đang ở dưới git, nhưng chưa được đăng ký trong cài đặt, bạn có thể giải thích điều này không
Ersen Osman.

@johncarter: Với gạch đầu dòng / cách thứ hai, bạn sẽ ổn chỉ cần đặt nó vào đúng thư mục mà không cần chỉnh sửa cài đặt và phụ thuộc của bạn. Nhưng đó cũng là một hoặc (thay) ít toàn diện dẫn hơn về cách này trên AndroidDevelopers: developer.android.com/training/volley
Lê-vi

2
Cảm ơn vì câu trả lời tuyệt vời. Phương pháp Volley.jar đã làm việc hiệu quả cho tôi!
vincent mathew

11

Kể từ hôm nay, đã có bản sao chính thức của Volley được lưu trữ trên Android trên JCenter:

compile 'com.android.volley:volley:1.0.0'

Điều này được biên dịch từ mã nguồn AOSP volley.


Cảm ơn vì đăng! Đây phải được đánh dấu là câu trả lời đúng.
David Lord

5

CẬP NHẬT:

compile 'com.android.volley:volley:1.0.0'

CÂU TRẢ LỜI CŨ: Bạn cần phần tiếp theo trong build.gradle của mô-đun ứng dụng của bạn:

dependencies {
        compile 'com.mcxiaoke.volley:library:1.0.19'
        (Rest of your dependencies)

    }

Đây không phải là repo chính thức nhưng là repo rất đáng tin cậy.


1
Hãy coi chừng. Thư viện volley được lưu trữ ở đây đã lỗi thời và không được lưu trữ chính thức. Xem bài viết của tôi ở phía dưới.
shauvik

1

Để kết hợp vô lê trong studio android,

  1. dán lệnh sau vào terminal (
    git clone https://android.googlesource.com/platform/frameworks/volley ) và chạy nó.

    Tham khảo hướng dẫn dành cho nhà phát triển Android về điều này.

    Nó sẽ tạo một volley tên thư mục trong thư mục src.
  2. Sau đó vào android studio và nhấp chuột phải vào dự án.
  3. chọn Mới -> Mô-đun từ danh sách.
  4. Sau đó nhấp vào nhập Dự án hiện có từ danh sách bên dưới.
  5. bạn sẽ thấy một khu vực nhập văn bản cụ thể là thư mục nguồn, duyệt qua thư mục bạn đã tải xuống (volley) và sau đó nhấp vào kết thúc.
  6. bạn sẽ thấy một vòng tròn thư mục trong dạng xem dự án của bạn.
  7. chuyển sang chế độ xem android và mở tệp build: gradle (Module: app) và thêm dòng sau vào vùng phụ thuộc:

    biên dịch 'com.mcxiaoke.volley: library-aar: 1.0.0'

  8. Bây giờ đồng bộ hóa dự án của bạn và cũng xây dựng dự án của bạn.


0

Tôi đã thiết lập Volley như một Dự án riêng biệt. Bằng cách đó, nó không bị ràng buộc với bất kỳ dự án nào và tồn tại độc lập.

Tôi cũng có một thiết lập máy chủ Nexus (Internal repo) để tôi có thể truy cập volley dưới dạng
biên dịch 'com.mycompany.volley: volley: 1.0.4' trong bất kỳ dự án nào tôi cần.

Bất kỳ lúc nào tôi cập nhật dự án Volley, tôi chỉ cần thay đổi số phiên bản trong các dự án khác.

Tôi cảm thấy rất thoải mái với cách tiếp cận này.


0

thêm vào

compile 'com.mcxiaoke.volley:library:1.0.19'
        compile project('volley')

trong phần phụ thuộc, trong tệp build.gradle của ứng dụng của bạn

KHÔNG DISTURB TẬP TIN build.gradle TRONG THƯ VIỆN CỦA BẠN. ĐÓ LÀ TẬP TIN TỐT NGHIỆP CỦA ỨNG DỤNG CỦA BẠN CHỈ BẠN CẦN THAY THẾ

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.