Gradle在Android Studio中无法解析依赖项

5
我已经在Android Studio中导入了一个Phonegap项目,并将其作为Gradle项目进行了设置。现在我正在尝试编译一些外部依赖项,但是我遇到了以下错误:
Error:(72, 13) Failed to resolve: com.loopj.android:android-async-http:1.4.6 Show in File Show in Project Structure dialog
我试图通过转到文件->项目结构->依赖项并“自动”添加它们来添加这些依赖项。Android Studio确实可以找到库,并将它们添加到我的build.gradle中,但我仍然遇到相同的错误...
下面是我的build.gradle文件的一部分(依赖项在底部):
import java.util.regex.Pattern

apply plugin: 'android'

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0+'
    }
}

ext.multiarch=false

android {
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }

    defaultConfig {
        versionCode Integer.parseInt("" + getVersionCodeFromManifest() + "0")
    }

    compileSdkVersion 21
    buildToolsVersion "21.0.0"

    if (multiarch || System.env.BUILD_MULTIPLE_APKS) {
        productFlavors {
            armv7 {
                versionCode defaultConfig.versionCode + 2
                ndk {
                    abiFilters "armeabi-v7a", ""
                }
            }
            x86 {
                versionCode defaultConfig.versionCode + 4
                ndk {
                    abiFilters "x86", ""
                }
            }
            all {
                ndk {
                    abiFilters "all", ""
                }
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.loopj.android:android-async-http:1.4.6'
    compile 'org.altbeacon:android-beacon-library:2+@aar'
    for (subproject in getProjectList()) {
        compile project(subproject)
    }
}

感谢任何帮助 :)
2个回答

6

这段代码不应该放在 buildscript 内部,应该将其放在外面。根据需要使用 jcenter()mavenCentral()

repositories {
    mavenCentral()
}

您正在使用错误的插件。如果是为应用程序构建,请使用。
apply plugin: 'com.android.application'

如果要构建库,请使用

apply plugin: 'com.android.library'

1
非常感谢您的回答和解释,它起作用了 ^^ - Théo Richard

3
将此部分添加到 build.gradle 中的 buildscript 部分之外。
repositories {
     jcenter()
}

不要将此存储库与buildscript部分使用的存储库混淆。它们是不同的。
另外,更改:
apply plugin: 'android'

apply plugin: 'com.android.application'

谢谢您的快速回答,但我不相信用“jcenter”代替MavenCentral会改变什么... 我已经尝试过了,还是出现了相同的错误... - Théo Richard
请注意,我并不是要求您更改buildscript部分中的存储库!我是说要在buildscript部分之外添加此部分。 - Gabriele Mariotti
非常感谢,我不是很理解,但它确实有效! - Théo Richard
如果答案正确,请随意标记它。这可以帮助其他遇到相同问题的用户。 - Gabriele Mariotti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接