簡體   English   中英

Gradle Build Android 項目“無法解決所有依賴項”錯誤

[英]Gradle Build Android Project “Could not resolve all dependencies” error

我正在嘗試使用 Gradle 構建我的第一個項目,我認為我的 gradle 文件和設置是正確的。

我只使用一個模塊並支持 V4 + AppCompatBar 庫。

項目 - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

項目 - settings.gradle

include ':AssignmentTempos21'

主模塊 - 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.+"
}

帶有 -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

正如彼得所說,他們不會在 Maven 中心

從 Android SDK Manager 下載“Android Support Repository”,支持庫的 Maven 存儲庫將下載到您的 Android SDK 目錄(請參閱“extras”文件夾)

要將庫部署到本地 .m2 存儲庫,您可以使用maven-android-sdk-deployer

2017年編輯:

您現在可以參考 Google 在線 M2 存儲庫

repositories {
google()
jcenter()
}

轉到您安裝 Android Studio 的任何位置(對我來說它在C:\\Users\\username\\AppData\\Local\\Android\\android-studio\\ )並打開sdk\\tools ,然后運行android.bat 從這里,更新和下載任何缺少的構建工具,並確保更新了 Extras 下的 Android Support Repository 和 Android Support Library。 SDK 管理器完成后重新啟動 Android Studio。

Android Studio 似乎完全忽略了任何已安裝的 Android SDK 文件並保留了自己的副本。 運行更新后,使用 compile com.android.support:appcompat-v7:18.0.+為我成功編譯了所有內容

如果您在無頭 CI 上運行並通過命令行安裝 Android SDK,請確保在--filter參數中包含 m2repository 包:

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

更新

從 Android SDK Manager 版本開始。 22.6.4 這不再起作用了。 試試這個:

android list sdk --all

您將獲得所有可用 SDK 包的列表。 從上面的第一個命令(“Google Repository”和您可能遺漏的其他命令)中查找組件的數值。

使用它們的數值安裝軟件包:

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

更新 #2(2017 年 9 月)

隨着今年早些時候發布的“新”Android SDK 工具, android命令現已棄用,類似的功能已移至名為sdkmanager的新工具:

列出已安裝的組件:

sdkmanager --list

更新已安裝的組件:

sdkmanager --update

安裝新組件(例如構建工具版本26.0.0 ):

sdkmanager 'build-tools;26.0.0'

Maven Central 中不存在這些依賴項(請參閱此)。

compileSdkVersion 17
targetSdkVersion 17

將編譯版本從 18 更改為 17

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

除了卡西姆的回答:

正如彼得所說,他們不會在 Maven 中心

使用maven-android-sdk-deployer將庫部署到本地存儲庫

或者從 Android SDK Manager 下載 Android Support Repository(在 Extras 中),支持庫的 M2 repo 將下載到您的 Android SDK 目錄

我還必須在 Android SDK 管理器中更新“支持庫的本地 Maven 存儲庫”。

回應@friederbluemle,如果您安裝了Android SDK工具,您也可以從命令行啟動SDK管理器:

$ android

然后在彈出的 UI 中,選擇需要安裝的工具/存儲庫 - 在您的情況下是支持庫存儲庫

在您的應用程序的 build.gradle 文件中寫入以下語句。

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

而已

嘗試關閉您的防火牆it works for me 看起來 android studio 想要下載一些依賴項,而我們的防火牆阻止它下載它,請just be aware that turning your firewall off may lower the security of your computer 如果您有更多時間,您可以手動允許您的 android studio 繞過防火牆,這樣您就可以打開防火牆,同時允許 android studio 下載它想要的任何內容。

我在 Android Studio 2.1.1 的 Gradle Build 選項卡中收到了這條消息。 我從 SDK Manager 安裝了很多文件,但沒有幫助。

我需要單擊下一個選項卡“Gradle Sync”。 有一個鏈接“安裝存儲庫和同步項目”安裝了“Android 支持存儲庫”。

  1. 安裝 android sdk 管理器
  2. 檢查是否安裝了建築工具。 安裝 api 23.
  3. 從 Android SDK Manager 下載“Android Support Repository”
  4. 刪除cordova-plugin-android-support-v4
  5. 建造

將此添加到您的 gradle 中:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM