2017-02-22 76 views
7

我正在開發一個移動應用程序項目,但通常當我嘗試運行該應用程序時,它給了我以下錯誤:無法解析com.android.tools.build:gradle:2.2.3

Error:A problem occurred configuring root project 'projectName'. Could not resolve all dependencies for configuration ':classpath'. Could not resolve com.android.tools.build:gradle:2.2.3. Required by: :projectName:unspecified No cached version of com.android.tools.build:gradle:2.2.3 available for offline mode.

我已經嘗試了許多不同的事情,包括取消選擇設置中的離線工作複選框,然後關閉並重新打開Android Studio,但似乎沒有解決問題。它可能會連續幾次建成,但同樣的錯誤不斷彈出。然後,我必須嘗試構建和製作應用的變體,或退出並重新開放Android Studios。沒有任何一貫的作品,任何洞察什麼可能會導致這個問題,以及如何可以修復,將不勝感激。

***更新:根據要求我增加了我下面的應用程序內容的gradle

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 24 
buildToolsVersion "24.0.1" 
useLibrary 'org.apache.http.legacy' 

dexOptions { 
    javaMaxHeapSize "8g" 
} 

defaultConfig { 
    applicationId "com.example" 
    minSdkVersion 15 
    targetSdkVersion 24 
    versionCode 1 
    versionName "1.0" 

    multiDexEnabled true 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
    debug{ 
     debuggable true 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.android.support:design:24.2.1' 
compile 'com.google.android.gms:play-services:9.4.0' 
compile 'com.android.support:recyclerview-v7:24.2.1' 
compile 'com.android.support:support-v4:24.2.1' 

compile files('libs/gson-2.2.2.jar') 
compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1' 
compile 'com.facebook.stetho:stetho:1.3.1' 
compile 'com.loopj.android:android-async-http:1.4.9' 
} 
+0

可能需要發佈您的build.gradle文件 –

回答

4

事實證明,我的特定問題的解決方案相對簡單。該錯誤消息有點欺騙,因爲這不是離線模式切換的問題,而是與gradle文件混淆。下面幾步我走上解決問題:

  1. 瞭解Android Studio 2.3轉到文件>設置>搖籃,並選擇「使用默認gradle這個包裝」選項。還要確保「離線工作」旁邊的複選框未被選中以防萬一。
  2. 單擊「應用」按鈕
  3. 內的build.gradle文件(一個項目的名字命名)的Android工作室的「搖籃腳本」部分一定要確定您目前的Gradle構建類路徑當前版本匹配的Android Studio。爲Android 2.3工作室的例子:

    buildscript { 
        repositories { 
        jcenter() 
        } 
        dependencies { 
         classpath 'com.android.tools.build:gradle:2.3.0' 
        } 
    } 
    
  4. 而且在搖籃腳本部分中確保您的gradle-wrapper.properties文件被引用在分配URL正確gradle這個文件。例如,對於3.3的gradle:

    distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 
    
  5. 導航到C:\ Program Files文件\的Android \ Android Studio中\ gradle產出,並確保沒有使用相同的名稱爲您正在使用的一個的gradle的Gradle文件夾。在我的例子中,我確保有一個名爲gradle-3.3的文件夾,其中有一個名爲gradle-3.3-all.zip的zip文件。在線查找這個zip文件相對比較容易。

  6. 刪除C:\ Users \ yourUser中的.gradle文件夾,其中yourUser是您的Android Studio項目所在的用戶。
  7. 關閉Android Studio並重新啓動。它應該開始gradle同步過程並重建.gradle文件。

對我來說,當我這樣做時,它也抱怨沒有找到.gradle文件夾中的gradle-3.3-all.zip文件。我可以通過將gradle-3.3-all.zip文件添加到C:\ Users \ yourUser.gradle \ wrapper \ dists \ gradle-3.3-all \ 55gk2rcmfc6p2dg9u9ohc3hw9來解決此問題。我不確定該文件夾是否對每個人都有相同的名稱,但無論名稱如何,那是我去過的位置。如果所有這些都不起作用,我會嘗試一下這些步驟的變化,並希望它適用於您。

+0

選擇這個選項「使用默認的gradle wrapper」是做什麼的?你能詳細說明嗎? –

0

它爲什麼失敗的原因是因爲它無法編譯包含的是圖書館之一。也許,請嘗試刪除您懷疑的那個,然後重試。但是大多數情況下,重建項目應該解決依賴問題。

+0

構建項目有時會起作用,但它非常不一致。所有的依賴關係對於應用程序來說都是必需的,在這個問題開始出現之前我並沒有改變任何依賴關係。從其他地方的研究看來,這是一個Android Studio錯誤,它顯示在最新的更新中。 –

0

我有同樣的PB,設法解決它在gradle.properties

systemProp.https.proxyHost=<my proxy hostname> 
systemProp.https.proxyPort=<my proxy port> 

加入我失蹤HTTPS財產,只有HTTP設置好的因此它有時工作,而不是爲HTTPS鏈接gradle使用。