【问题标题】:Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:26.1.0无法解析“:app@debug/compileClasspath”的依赖关系:无法解析com.android.support:appcompat-v7:26.1.0
【发布时间】:2018-04-10 12:12:17
【问题描述】:

无法解析 ':app@debug/compileClasspath' 的依赖关系:无法解析 com.android.support:appcompat-v7:26.1.0。

无法解析 com.android.support:appcompat-v7:26.1.0。

要求:项目:app

没有可用于离线模式的 com.android.support:appcompat-v7:26.1.0 的缓存版本。

错误日志:

无法解析配置“:app:debugCompileClasspath”的所有文件。
无法解析 com.android.support:appcompat-v7:26.1.0。
要求:
项目:应用程序
没有可用于离线模式的 com.android.support:appcompat-v7:26.1.0 的缓存版本。
没有可用于离线模式的 com.android.support:appcompat-v7:26.1.0 的缓存版本。
无法解析 com.android.support.constraint:constraint-layout:1.1.0-beta3。
要求:
项目:应用程序
没有可用于离线模式的 com.android.support.constraint:constraint-layout:1.1.0-beta3 的缓存版本。
没有可用于离线模式的 com.android.support.constraint:constraint-layout:1.1.0-beta3 的缓存版本。
无法解析 com.android.support:design:26.1.0。
要求:
项目:应用程序
没有可用于离线模式的 com.android.support:design:26.1.0 缓存版本。
没有可用于离线模式的 com.android.support:design:26.1.0 缓存版本。
无法解析 com.android.support:cardview-v7:26.1.0。
要求:
项目:应用程序
没有可用于离线模式的 com.android.support:cardview-v7:26.1.0 的缓存版本。
没有可用于离线模式的 com.android.support:cardview-v7:26.1.0 的缓存版本。
无法解析 com.google.android.gms:play-services-ads:11.4.2。
要求:
项目:应用程序
没有可用于离线模式的 com.google.android.gms:play-services-ads:11.4.2 的缓存版本。
没有可用于离线模式的 com.google.android.gms:play-services-ads:11.4.2 的缓存版本。
无法解析 com.android.support:support-v4:26.1.0。
要求:
项目:应用程序
没有可用于离线模式的 com.android.support:support-v4:26.1.0 缓存版本。
没有缓存版本的 com.android.support:support-v4:26.1.0 可用于离线模式。

错误日志图片:

【问题讨论】:

  • 如果您使用的是 VPN,请将其关闭以使其正常工作。

标签: android android-studio gradle android-gradle-plugin


【解决方案1】:

转到File->Other Settings->Default Settings->Build, Execution, Deployment->Build Tools->Gradle->Uncheck Offline work option.

【讨论】:

  • 您应该使缓存无效并重新启动。按照这个步骤file -> invalidate caches/Restart 然后在出现的对话框中选择invalidate and restart
  • 您需要重新同步项目。
  • 我在 Android 工作室中找不到此选项
  • @Arefe 它已移至主窗口右侧的专用 Gradle 面板,可以单击专用的“切换离线模式”按钮。
  • 对我来说这个选项是取消选中但我有这个错误
【解决方案2】:

下面是一个解决方法演示图像;取消选中 Offline work 选项,方法是:

文件 -> 设置 -> 构建、执行、部署 -> Gradle

如果上述解决方法不起作用,请尝试以下操作:

  1. 为您的应用打开 build.gradle 文件。

  2. 确保存储库部分包含一个带有“https://maven.google.com”端点的 Maven 部分。例如:

    allprojects {
         repositories {
             jcenter()
             maven {
                 url "https://maven.google.com"
             }
         }
    }
    
  3. 将支持库添加到dependencies 部分。例如,要添加 v4 core-utils 库,请添加以下行:

    dependencies {
        ...
        compile "com.android.support:support-core-utils:27.1.0"
    }
    

警告:使用动态依赖项(例如,palette-v7:23.0.+)可能会导致意外的版本更新和回归不兼容。我们建议您明确指定库版本(例如,palette-v7:27.1.0)。

清单声明更改

具体来说,您应该将清单中<uses-sdk> 标记的android:minSdkVersion 元素更新为新的较低版本号,如下所示:

<uses-sdk
  android:minSdkVersion="14"
  android:targetSdkVersion="23" />

如果您使用的是 Gradle 构建文件,则构建文件中的 minSdkVersion 设置会覆盖清单设置。

apply plugin: 'com.android.application'

android {
   ...
      defaultConfig {
            minSdkVersion 16
            ...
        }
        ...
    }

关注Android Developer Library Support

【讨论】:

    【解决方案3】:

    刚刚去build.gradle删除了那行:

    implementation 'com.android.support:appcompat-v7:26.1.0'
    

    在那之后,我重新同步了 Gradle。然后,我将这行代码粘贴回去,再次重新同步 Gradle,它就可以工作了。

    注意:在进行此更改时,我还更新了所有需要更新的 SDK 工具。

    【讨论】:

      【解决方案4】:

      Invalidate Cache / Restart 来自文件选项。

      只是取消选中离线模式对我不起作用。

      【讨论】:

      • 该选项现在在 Android Studio 中似乎不可用
      【解决方案5】:

      在android\app\build.gradle 文件中,

      替换版本详情

      implementation 'com.android.support:appcompat-v7:26.1.0'
      

      implementation 'com.android.support:appcompat-v7:+'
      

      Android Studio 将使用适合您的版本。

      【讨论】:

        【解决方案6】:

        使用 Invalidate Caches/Restart 它会为您工作,并确保您的 gradle 离线同步选项未启用

        【讨论】:

          【解决方案7】:

          在项目 gradle 中添加这个对我有用

          allprojects {
           repositories {
               jcenter()
               maven {
                   url "https://maven.google.com" // specifically this worked 
               }
           }}
          

          【讨论】:

            【解决方案8】:

            对于居住在被 Google 禁止的国家/地区(例如伊朗)的用户来说,这是一个问题。 出于这个原因,我们需要通过代理删除这些限制。 跟我来:

            文件->设置->外观&行为->系统设置->Http代理->手动代理配置->HTTP->主机名:fodev.org->端口:8118。

            然后单击确定按钮。 然后转到 file-> Invalidate Caches/Restart 。 . . 使用并享受正确的执行而不会出错;)

            【讨论】:

            • 在伊朗,我们使用 shecan dot iran 服务;)你呢?我改变了我的 dns 和它的工作
            • shekan只能打开developers.android,打不开medician.com、interanet等网站
            【解决方案9】:

            今天我也遇到了类似的问题。

            在我的项目gradle中以前的

            // Top-level build file where you can add configuration options common to all 
            sub-projects/modules.
            allprojects {
            repositories {
                jcenter()
                google()
                mavenCentral()
                maven { url "https://jitpack.io" }
                maven { url 'https://plugins.gradle.org/m2/'}
            }}
            

            然后我只是在 allprojects 中添加了以下行

            maven {
                    url "https://maven.google.com"
                }
            

            它拯救了我的一天。

            现在我当前的 allproject {} 代码如下所示

            allprojects {
            repositories {
                jcenter()
                google()
                mavenCentral()
                maven { url "https://jitpack.io" }
                maven { url 'https://plugins.gradle.org/m2/'}
                maven {
                    url "https://maven.google.com"
                }
            }}
            

            【讨论】:

              【解决方案10】:

              来自documentations

              将支持库添加到依赖项部分。例如,要 添加 v4 core-utils 库,添加以下行:

              dependencies {
                  ...
                  implementation "com.android.support:support-core-utils:28.0.0"
              }
              

              【讨论】:

                【解决方案11】:

                我解决了这个问题。在 Home Ubuntu 中,我删除了 .gradle 文件夹并再次下载。 希望有用

                【讨论】:

                  【解决方案12】:

                  转到文件->其他设置->新项目的首选项->构建、执行、部署->构建工具->Gradle->取消选中离线工作选项。

                  【讨论】:

                  • 区别在于这个“默认设置”和这个“新项目首选项”。我很确定你现在明白了
                  【解决方案13】:

                  对于在项目中有兴趣并找到此线程的用户:

                  注意,如果你的模块依赖有不同的风格,你应该使用其中一种策略:

                  1. 加强依赖关系的模块应具有与 依赖模块
                  2. 您应该明确指出您在模块中的目标配置

                  像这样:

                  dependencies {
                      compile project(path: ':module', configuration:'alphaDebug') 
                  }
                  

                  【讨论】:

                    【解决方案14】:

                    我遇到了同样的问题,在我的 build.gradle 文件的存储库块中添加 mavenCentral() 对我有用。我没有选中离线工作并添加了maven { url "https://maven.google.com" }。为在此线程末尾发现自己的迷失灵魂添加此答案。

                    【讨论】:

                      【解决方案15】:

                      如果您没有取消选中离线工作,请确保您有互联网供 Android Studio 规范您的项目。

                      【讨论】:

                        【解决方案16】:

                        如果您在添加动态模块后遇到同样的错误,请不要担心,请按照以下步骤操作:

                        • 在你的 build.gradle(dynamic-module) 中添加 productFlavors

                          productFlavors {
                          flavorDimensions "default"
                          stage {
                             // to do
                          }
                          prod {
                             // to do
                          
                           }
                          }
                          

                        【讨论】:

                          【解决方案17】:

                          对于接受的答案不能解决此问题的其他人...

                          截至 2018 年 9 月,AndroidX 已取代 Android 支持库,其中包括 appcompat-v7 库。

                          'com.android.support:appcompat-v7' 变为 'androidx.appcompat:appcompat:1.0.0'

                          'com.android.support:design' 变为 'com.google.android.material:material:1.0.0'

                          参考资料:

                          https://developer.android.com/jetpack/androidx/migrate 支持库到 AndroidX 映射的列表

                          【讨论】:

                            【解决方案18】:

                            对我来说,原因是 jcenter 的 URL 不正确。为了解决这个问题,我只是更改了应用程序和项目级别的 url build.gradle

                            来自

                            jcenter { url "http://jcenter.bintray.com/"}
                            

                            jcenter()
                            

                            【讨论】:

                              【解决方案19】:

                              转到 build.Gradle 文件并在这些地方将 27 和 29 替换为 25 1.targetSdkVersion 25 2.实现'com.android.support:appcompat-v7:25.+'

                              它真的对我有用 谢谢。

                              【讨论】:

                                【解决方案20】:

                                App gradle 中使用的实现 'androidx.appcompat:appcompat:1.1.2' 为我解决了这个问题

                                【讨论】:

                                  猜你喜欢
                                  • 2018-05-11
                                  • 1970-01-01
                                  • 2018-06-05
                                  • 1970-01-01
                                  • 2018-12-15
                                  • 1970-01-01
                                  • 2018-08-26
                                  • 1970-01-01
                                  • 1970-01-01
                                  相关资源
                                  最近更新 更多