【问题标题】:How to add Android Support Repository to Android Studio?如何将 Android 支持存储库添加到 Android Studio?
【发布时间】:2013-11-26 07:34:54
【问题描述】:

我正在使用带有外部 Android SDK 的 Android Studio。我已经安装了支持库和支持存储库。支持存储库位于:

~/Development/Tools/android/sdk/extras/android/m2repository

当我在build.gradle 文件中向支持库添加依赖项时,例如:

...

repositories {
    mavenCentral()
}

...

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

Android Studio 找不到支持库(无法解析符号等),Gradle 也找不到这些库:

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

如何在 Android Studio 和/或 build.gradle 文件中指定 Android 支持存储库的位置?

【问题讨论】:

  • local.properties 文件中的 SDK 路径是否正确?
  • 我的local.properties 文件中唯一的一行是:sdk.dir=/Users/jaap/Development/Tools/android/sdk 这是外部sdk 的路径。
  • 你确定你有支持库版本 18 吗?现在是 19 岁。
  • 任何人因为未能向 build.gradle 添加 'compile' 语句而到达这里,请注意有两个 build.gradle 文件,并且必须将编译添加到没有依赖项部分的文件的依赖项部分(targetSdkVersion = x 等的那个)

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


【解决方案1】:

不要这样做:

compile "com.android.support:support-v4:18.0.+"

这样做:

compile 'com.android.support:support-v4:18.0.+' 

为我工作

【讨论】:

    【解决方案2】:

    this bug 可能会阻止 Android Gradle 插件自动将“Android 支持存储库”添加到 Gradle 存储库列表中。如错误报告中所述,解决方法是将m2repository 目录显式添加为顶级build.gradle 文件中的本地Maven 目录,如下所示:

    allprojects {
        repositories {
            // Work around https://code.google.com/p/android/issues/detail?id=69270.
            def androidHome = System.getenv("ANDROID_HOME")
            maven {
                url "$androidHome/extras/android/m2repository/"
            }
        }
    }
    

    【讨论】:

    • 我正在将库添加到我们本地的 maven 工件中,因此它适用于所有人。
    • 这不再是必要的了,因为至少我不能再使用最新的 Android 插件和构建工具重现该错误(另请参阅我对原始错误的评论)。
    • 这解决了另一个问题:将android注解支持(例如@NonNull)添加到android应用程序的裸java lib中。
    • 在升级到 Android Studio 2.3 后仍然有这个问题......有没有任何信息是什么原因以及机制中的钩子在 Android Studio 中是如何工作的?!我唯一可以确认的是:我可以通过 SDK 管理器简单地“卸载然后重新安装”支持存储库来“修复”它......没有胶水为什么这有助于即使文件存在并再次重新安装完全相同
    【解决方案3】:

    Android Studio 3

    确保您拥有最新版本的 Android Studio。创建新项目时默认包含支持库。如果您将支持库添加到没有它的项目中,那么您只需在应用模块的 build.gradle 文件中添加一行,然后同步 gradle。

    build.gradle

    dependencies {
        ...
        implementation 'com.android.support:appcompat-v7:27.1.1'
    } 
    

    应该就是这么简单,尽管可能需要注意一些事项:

    • 如果支持库需要更新,Android Studio 现在应该给你一个警告。只需将我在这里的27.1.1 号码更新为它告诉你的任何内容。如果您愿意,也可以手动检查the latest revision 是什么。
    • implementation 关键字替换了在 Android Studio 2.x 中使用的 compile。 (What's the difference?)
    • 您可能需要包含其他支持库包,具体取决于您的应用使用的内容(例如 constraint-layoutrecyclerview)。
    • 确保您拥有 SDK 管理器中所有内容的最新更新。转到工具 > SDK 管理器

    文档

    【讨论】:

      【解决方案4】:

      我曾经遇到过类似的问题。即使在安装了支持存储库之后,构建也会失败。

      基本上问题是由于正确指定了gradle文件中指定jar文件的版本号的方式。

      例如,在我的例子中,我将其设置为“compile 'com.android.support:support-v4:21.0.3+'”

      删除“+”后构建成功!!

      【讨论】:

      【解决方案5】:

      Gradle 可以使用 18.0.+ 表示法,但是它现在依赖于现在与 SDK 捆绑在一起的新支持存储库。

      打开 SDK 管理器,在 Extras 下的第一个选项是“Android Support Repository”并安装它

      【讨论】:

      • 还要确保您的“Android SDK 工具”已更新,并考虑使用“19.0.+”,因为它是最新的。
      • developer.android 警告不要在版本号in this document 和许多其他地方使用+。
      【解决方案6】:

      找到了解决办法。

      1) 转到 android studio/eclipse 正在使用的 SDK 所在的位置。 如果您使用的是 Android Studio,请转到 extras\android\m2repository\com\android\support\。 如果你使用的是eclipse,请转至\extras\android\support\

      2) 看看你有哪些文件夹,对我来说,我有 gridlayout-v7、support-v4 和 support-v13。

      3) 点进support-v4,看看下面的文件夹是什么编号,我的是13.0

      由于您使用的是“com.android.support:support-v4:18.0.+”,请更改它以反映您拥有的版本,例如我有 support-v4,所以第一部分 v4 保持不变。由于下一个路径是 13.0,请将您的 18.0 更改为:

      "com.android.support:support-v4:13.0.+"
      

      这对我有用,希望对你有帮助!

      更新:

      我注意到我使用错误的 SDK 设置了 android studio,这就是为什么最初难以更新的原因!路径应该是 C:\Users\Username\AppData\Local\Android\android-sdk\extras\

      另外请注意,如果您的 SDK 是最新的,代码将为:

      "com.android.support:support-v4:19.0.+"
      

      【讨论】:

      • 谢谢。我也有点卡住了,因为在在线 maven 存储库中,支持库位于 com.google.android 下,但这里它位于 com.android.support 下。
      • 我花了好几个小时才弄明白!原来只是一个简单的改变哈哈,你得到了排序很好!
      • 我的 SDK 文件夹在驱动器 E(C 是 SSD)中,[SDK]\extras\android\m2repository\com\android\support\support-v4 包含从 13.0.026.0.0-alpha1 的文件夹编号(38 个文件夹),repo 仍然无法访问。跨度>
      • developer.android 已经警告不要在版本号中使用 + in this document
      猜你喜欢
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多