2013-09-01 32 views
20

EDIT:Android Gradle xây dựng không: Không thể tìm com.google.android:support-v4:r18

This issue seemed to disappear by its own somehow, possibly due to the new Gradle build system becoming more mature.

Tôi có hai dự án Android riêng biệt:

Dự án 1 là một Android Thư viện sử dụng plugin 'android-library' cho Gradle, tùy thuộc vào hỗ trợ-thư viện-v4: r18. Đoạn từ phụ thuộc trong build.gradle:

compile 'com.android.support:support-v4:18.0.0' 

Thư viện hỗ trợ được lấy từ Android Hỗ trợ Repository cài đặt qua Android SDK Manager như được giải thích here. Dự án này sau đó được xây dựng và xuất bản để lưu trữ cục bộ maven bằng cách chạy: gradle uploadArchives

Tôi đã xác minh và thực sự là thư viện .aar sau đó có sẵn trong kho lưu trữ maven cục bộ.

Dự án thứ 2 là một ứng dụng Android sử dụng 'android' plugin cho Gradle, mà tham chiếu phụ thuộc maven của thư viện được tạo ra bởi các dự án đầu tiên. Dưới đây là một đoạn trích từ build.gradle:

repositories { 
    mavenLocal() 
    mavenCentral() 
} 
dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 
    compile 'com.example:cool-lib:1.0.0-SNAPSHOT' 
} 

NOTE: The two projects are completely separated from another. Meaning that, they are NOT subprojects of the same root project.

Khi tôi cố gắng xây dựng các dự án thứ 2 bằng cách chạy: gradle assemble

tôi nhận được lỗi sau:

Could not find com.google.android:support-v4:r18. 
Required by: 
    com.example:app-project:unspecified > com.example:cool-lib:1.0.0-SNAPSHOT 

Tôi đã kiểm tra .pom tệp của cool-lib, dưới thư mục maven repo địa phương của tôi và tôi thấy rằng nó có phụ thuộc sau:

<dependency> 
    <groupId>com.android.support</groupId> 
    <artifactId>support-v4</artifactId> 
    <version>18.0.0</version> 
    <scope>compile</scope> 
</dependency> 

Đối với một số lý do, Gradle đang cố gắng để có được những hỗ trợ thư viện-v4 r18 cho lib dự án từ kho lưu trữ trung tâm của maven thay vì nhận nó từ Kho lưu trữ hỗ trợ Android. Nó không thành công vì phiên bản mới nhất trong Maven Central của hỗ trợ-library-v4r7.

Có cách nào để buộc Gradle để lấy chặt chẽ việc hỗ trợ thư viện-v4 r18 từ Android Hỗ trợ Repository cũng cho các thư viện Android bên ngoài được tham chiếu từ Maven miền Trung?

+0

Tôi cũng nhìn thấy vấn đề khi sử dụng hai thư viện, một trong số đó đòi hỏi phải có một trong những khác. Bạn đã sửa được nó chưa? – frapontillo

+0

Tôi đã có lỗi tương tự khi biến môi trường ANDROID_HOME của tôi trỏ đến phiên bản cũ của SDK –

Trả lời

6

đảm bảo bạn có tệp local.properties trong thư mục dự án chính và biến sdk.dir trỏ tới SDK Android.(thử nghiệm trên mac)

+1

Tôi có biến môi trường ANDROID_HOME được đặt cho mục đích đó, tôi nghĩ rằng nó có cùng ảnh hưởng theo sự hiểu biết của tôi ... –

+0

Tôi có thể sai nhưng nó phụ thuộc vào nơi ANDROID_HOME được đặt. Nó được đặt trong .bashrc hoặc .bash_profile? Nếu vậy nó chỉ hiển thị trong terminal chứ không phải từ desktop. ví dụ. cho gnome nó sẽ ở đâu đó khác. – robotoaster

+0

'ANDROID_HOME' phục vụ cùng mục đích với cài đặt' sdk.dir'. – Flow

38

Bạn cần cài đặt Android Support Repository từ trình quản lý SDK. Sau đó Gradle sẽ có thể giải quyết thư viện hỗ trợ từ ${SDK_HOME}\extras\android\m2repository\.

+1

điều này đã làm các trick nhờ! –

+0

Tôi phải thực hiện việc này sau khi nâng cấp SDK (sau khi phát hành Android L) –

+0

Như được viết trong câu hỏi: 'Thư viện hỗ trợ được tìm nạp từ Kho lưu trữ Hỗ trợ Android được cài đặt thông qua Trình quản lý SDK Android như được giải thích ở đây', ngụ ý rằng tôi đã cài đặt nó . Vấn đề này dường như biến mất bởi chính nó bằng cách nào đó, có thể do hệ thống xây dựng Gradle mới trở nên trưởng thành hơn. –

2

Bạn cần cài đặt Kho lưu trữ hỗ trợ Android như madhead nói. Nhưng trong trường hợp của tôi nó đã vắng mặt. Bạn nên vào Tools-> Manage Add-on Sites ... và kiểm tra tất cả "Google Inc." trang web. Sau đó, Kho lưu trữ hỗ trợ Android sẽ xuất hiện trong danh sách các gói và bạn có thể cài đặt nó.

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