如何告诉Gradle在哪里搜索Android的支持库?

时间:2016-01-29 03:42:52

标签: android gradle command-line android-gradle

我正在尝试赶上使用Gradle构建的Android项目,并且只使用Android的支持库时遇到了麻烦:

$ ./gradlew
[ ... succeeding part ... ]

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':myproject'.
> Could not resolve all dependencies for configuration ':myproject:_debugCompile'.
   > Could not find com.android.support:appcompat-v7:23.1.1.
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.pom
         https://jcenter.bintray.com/com/android/support/appcompat-v7/23.1.1/appcompat-v7-23.1.1.jar
     Required by:
         android_core: myproject:unspecified

我的SDK额外文件夹中提供了appcompat个库,我的环境设置得很好(ANDROID_HOME,有时也是多余的ANDROID_SKD。我仍然在其他项目中使用Ant,并且所有项目都很好。

我已将mavenCentral()添加到build.gradle配置文件中,不情愿地同时访问了顶层项目和子项目。

现在我想我需要告诉Gradle搜索我的本地安装,但我没有找到如何做到这一点。我也很惊讶我需要改变构建配置。虽然所有其他人都使用Android Studio,但它适用于其他人。

2 个答案:

答案 0 :(得分:1)

这是问题的解决方案。

虽然我的Android支持库与基于Ant的项目运行良好,但事实证明Gradle(似乎)期待另一种类型的库。安装 Android支持存储库后,一切正常。

如果您遇到同样的问题,可以检查存储库的SDK安装。

Android SDK Manager on Extras

在CLI上:

required init?(dictionary: [String: AnyObject]) {

    guard let someValue = dictionary["someValue"] as? Bool else { return /*nil*/ } //Nil should not be commented here
    self.someValue = someValue

    super.init(dictionary: dictionary) //`self` used before super.init call
}

我应该感谢我的线下同事Kuwata-san带来了这个解决方案!

答案 1 :(得分:-1)

您应该在root build.gradle文件中添加jcenter(),就像这样

 repositories {
    jcenter()
    mavenCentral()
}