Gradle Build Android Project lỗi "Không thể giải quyết tất cả các phụ thuộc"


79

Tôi đang cố gắng xây dựng dự án đầu tiên của mình với Gradle và tôi nghĩ rằng các tệp và cài đặt gradle của tôi là chính xác.

Tôi chỉ sử dụng một mô-đun và hỗ trợ các thư viện V4 + AppCompatBar.

Dự án - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

Dự án - settings.gradle

include ':AssignmentTempos21'

Mô-đun chính - build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }
}

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile "com.android.support:appcompat-v7:18.0.+"
}

Đầu ra bảng điều khiển với cờ -i:

MacBook-Air-de-Cesar-2:AssignmentTempos21 menor$ ./gradlew -i clean assemble
Starting Build
Settings evaluated using settings file '/Users/menor/workspace_android/AssignmentTempos21/settings.gradle'.
Projects loaded. Root project using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Included projects: [root project 'AssignmentTempos21', project ':AssignmentTempos21']
Evaluating root project 'AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptClasspathScriptTransformer.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptTransformer.
Evaluating project ':AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/AssignmentTempos21/build.gradle'.
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':AssignmentTempos21'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':AssignmentTempos21:_DebugCompile'.
      > Could not find any version that matches com.android.support:support-v4:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified
      > Could not find any version that matches com.android.support:appcompat-v7:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 40.787 secs

Vui lòng đến vấn đề này và gắn dấu sao. Có vẻ như có rất nhiều vấn đề vì có rất nhiều thư viện chưa được xuất bản từ jCenter.
Patricio Sard

Câu trả lời:


95

Như Peter nói, họ sẽ không ở Maven Central

từ Trình quản lý SDK Android, hãy tải xuống 'Kho lưu trữ hỗ trợ Android' và kho Maven của các thư viện hỗ trợ sẽ được tải xuống thư mục SDK Android của bạn (xem thư mục 'bổ sung')

để triển khai các thư viện vào kho lưu trữ .m2 cục bộ của bạn, bạn có thể sử dụng maven-android-sdk-deployer

2017 chỉnh sửa:

bây giờ bạn có thể tham khảo kho lưu trữ M2 trực tuyến của Google

repositories {
google()
jcenter()
}

12
Tải xuống "Kho lưu trữ hỗ trợ Android" từ "Trình quản lý SDK Android" giải quyết dứt điểm sự cố này mà tôi gặp phải trong các dự án Android Studio 0.4.3. Nó vẫn chỉ là một chút đáng tiếc liên quan đến thư deprecation bởi Gradle nhưng đây là một câu chuyện khác vì vậy tôi mở câu hỏi này
Franco Rondini

bạn có thể vui lòng giải thích từng bước một: Ý tôi là tải xuống đầu tiên maven-android-sdk-deployer, thứ hai là gì?
Hosein Aqajani

@ H.Aqjn Tôi đã sắp xếp lại các câu trả lời cho đọc tốt hơn một chút (tôi nghĩ), nếu bạn đang sử dụng Gradle bạn nên sử dụng tốt chỉ để tải về kho lưu trữ hỗ trợ từ SDK Manager
Kassim

50

Đi đến bất kỳ nơi nào bạn đã cài đặt Android Studio (đối với tôi là ở dưới C:\Users\username\AppData\Local\Android\android-studio\) và mở sdk\tools, sau đó chạy android.bat. Từ đây, hãy cập nhật và tải xuống bất kỳ công cụ xây dựng nào bị thiếu và đảm bảo bạn cập nhật Kho lưu trữ hỗ trợ Android và Thư viện hỗ trợ Android trong Phần bổ sung. Khởi động lại Android Studio sau khi Trình quản lý SDK kết thúc.

Có vẻ như Android Studio hoàn toàn bỏ qua mọi tệp Android SDK đã cài đặt và giữ một bản sao của riêng nó. Sau khi chạy bản cập nhật, mọi thứ được biên dịch thành công cho tôi bằng cách sử dụng biên dịchcom.android.support:appcompat-v7:18.0.+


8
Điều này thực sự giúp ích cho tôi, tôi mong đợi Android Studio sẽ sử dụng Android SDK mà tôi đã cài đặt thủ công trên máy của mình. Việc để IDE sử dụng SDK Android của riêng mình thay vì sử dụng SDK do nhà phát triển xác định thực sự rất khó chịu. SDK phải được tách biệt với IDE.
samael

13
Tôi KHÔNG CÓ Ý TƯỞNG rằng Android Studio có phiên bản SDK riêng trong AppData. Điều này là siêu khó hiểu!
pqvst

Tôi đã phải cài đặt Tiện ích mở rộng / Thư viện hỗ trợ Android, khởi động lại Trình quản lý SDK và sau đó Kho lưu trữ hỗ trợ Android xuất hiện.
Leos Literak

Điều này đã loại bỏ lỗi về "com.android.support:appcompat-v7:19.+" cho tôi.
Nick Westgate

Chà, tôi cũng có sự nhầm lẫn tương tự, khi tôi nhận thấy nhiều phiên bản SDK Android trên máy Ubuntu của mình. Do đó, tôi đã có một nghi ngờ xấu, rằng AndroidStudio tạo phiên bản của riêng nó. Hiện tại tôi chạy AS v.2.1.2 và vấn đề tương tự này vẫn còn. Tôi tự hỏi liệu nhóm có kế hoạch sửa chữa nó sớm vào một ngày nào đó không, hay họ coi đó là một tính năng :)
Hết hàng vào

27

Nếu bạn đang chạy trên headless CI và đang cài đặt Android SDK thông qua dòng lệnh, hãy đảm bảo bao gồm các gói m2repository trong --filterđối số:

android update sdk --no-ui --filter platform-tools,build-tools-19.0.1,android-19,extra-android-support,extra-android-m2repository,extra-google-m2repository

Cập nhật

Kể từ phiên bản Android SDK Manager. 22.6.4 điều này không hoạt động nữa. Hãy thử cái này thay thế:

android list sdk --all

Bạn sẽ nhận được danh sách tất cả các gói SDK có sẵn. Tra cứu giá trị số của các thành phần từ lệnh đầu tiên ở trên ("Google Repository" và các giá trị khác mà bạn có thể thiếu).

Cài đặt các gói bằng các giá trị số của chúng:

android update sdk --no-ui --all --filter <num>

Cập nhật # 2 (Tháng 9 năm 2017)

Với các công cụ Android SDK "mới" được phát hành vào đầu năm nay, androidlệnh hiện không được dùng nữa và chức năng tương tự đã được chuyển sang một công cụ mới có tên sdkmanager:

Liệt kê các thành phần đã cài đặt:

sdkmanager --list

Cập nhật các thành phần đã cài đặt:

sdkmanager --update

Cài đặt một thành phần mới (ví dụ: phiên bản công cụ xây dựng 26.0.0):

sdkmanager 'build-tools;26.0.0'

Cảm ơn vì dòng lệnh tốt đẹp! Thật không may, bây giờ (Android SDK Manager phiên bản 22.6.4 (từ Giới thiệu trong GUI)) phản hồi mà tôi nhận được là : Error: Ignoring unknown package filter 'platform-tools', also for 'android-19'and 'extra-android-support'. Chúc mừng!
sdaau

Tôi đang nhận được "SWT thư mục '/ opt / android-sdk-linux / tools / lib / cánh tay' không tồn tại
Marian Klühspies

3
Cảm ơn bạn đã gợi ý. Tôi đã chạy:, android list sdk --all |grep -i reposnó mang lại cho tôi "98-Android Support Repository, revision 6""106-Google Repository, revision 11". Sau đó, tôi đã cài đặt cả hai gói đang chạy android update sdk -u -a -t 98,106cuối cùng đã giải quyết được vấn đề (Tôi đang sử dụng adt-bundle-linux-x86-20140702.zip, không biết đó là phiên bản Trình quản lý SDK nào).
Mateusz Szulc

1
Bạn đã cứu nhiều mạng sống ở đây bằng cách đề cập đến nhu cầu cài đặt Google Repository. Cảm ơn bạn.
yati sagade

Vâng tôi cũng là do thiếu - 142- Android Hỗ trợ Repository, sửa đổi 21 150 Google Repository, phiên bản 22
Bruce Lim


2
compileSdkVersion 17
targetSdkVersion 17

thay đổi phiên bản biên dịch từ 18 thành 17

compile "com.android.support:support-v4:17.0.+"
compile "com.android.support:appcompat-v7:17.0.+"

2

Ngoài câu trả lời của Kassim:

Như Peter nói, họ sẽ không ở Maven Central

Sử dụng maven-android-sdk-deployer để triển khai các thư viện vào kho lưu trữ cục bộ của bạn

Hoặc từ Trình quản lý SDK Android, hãy tải xuống Kho lưu trữ hỗ trợ Android (trong Phần bổ sung) và kho lưu trữ M2 của các thư viện hỗ trợ sẽ được tải xuống thư mục SDK Android của bạn

Tôi cũng phải cập nhật "Kho lưu trữ Local Maven cho Thư viện hỗ trợ" trong Trình quản lý SDK Android.


1

để echo @friederbluemle, bạn cũng có thể khởi chạy trình quản lý SDK từ dòng lệnh nếu bạn đã cài đặt các công cụ SDK Android:

$ android

và sau đó trong giao diện người dùng bật lên, chọn các công cụ / kho lưu trữ cần được cài đặt - trong trường hợp của bạn là kho thư viện hỗ trợ


1

viết câu lệnh sau trong tệp build.gradle của ứng dụng.

com.android.support:appcompat-v7:18.0.+

Đó là nó


1

Cố gắng tắt tường lửa của bạn , it works for me. Có vẻ như studio android muốn tải xuống một số phụ thuộc và tường lửa của chúng tôi ngăn không cho tải xuống just be aware that turning your firewall off may lower the security of your computer,. Nếu bạn có nhiều thời gian hơn, bạn có thể cho phép studio android vượt qua tường lửa theo cách thủ công, bằng cách này bạn có thể bật tường lửa của mình trong khi cho phép android studio tải xuống bất cứ thứ gì mà nó muốn.


1

Tôi nhận được thông báo này trong Android Studio 2.1.1 trong tab Gradle Build. Tôi đã cài đặt nhiều tệp từ Trình quản lý SDK nhưng không giúp được gì.

Tôi cần nhấp vào tab tiếp theo "Gradle Sync". Có một liên kết "Cài đặt Kho lưu trữ và dự án đồng bộ hóa" đã cài đặt "Kho lưu trữ hỗ trợ Android".


1
  1. Cài đặt trình quản lý sdk android
  2. kiểm tra xem các công cụ xây dựng đã được cài đặt chưa. cài đặt api 23.
  3. từ Trình quản lý SDK Android, hãy tải xuống 'Kho lưu trữ hỗ trợ Android'
  4. gỡ bỏ cordova-plugin-android-support-v4
  5. xây dựng

0

Thêm cái này vào gradle của bạn:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
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.