自上一轮更新以来,我一直收到此错误。 Gradle绝对绝对拒绝找到v13支持库。我尝试了以下方法:

  • 安装最新的Android支持存储库以及最新的Android支持库
  • here的前两个建议
  • 在构建脚本
  • 中指定最新的gradle(0.12。+)
  • 指定v13库
  • v13的不同版本

    我可以在m2repository文件夹中看到它。实际上,我可以看到我尝试过的所有替代版本。

    这是我的build.gradle:
        buildscript {
            repositories {
                def androidHome = System.getenv("ANDROID_HOME")
                mavenCentral()
                maven {
                    url "$androidHome/extras/android/m2repository/"
                }
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:0.12.+'
                classpath 'org.robolectric.gradle:gradle-android-test-plugin:0.9.4'
            }
            ext.compileSdkVersion = 19
            ext.buildToolsVersion = "19.0.3"
            ext.minSdkVersion = 14
            ext.targetSdkVersion = 18
            ext.buildVersion = 8
            ext.codeVersion = 5
        }
    
        allprojects {
            repositories {
                mavenCentral()
            }
        }
    

    ...然后在主项目中:
        apply plugin: 'android'
        apply plugin: 'android-test'
    
        tasks.withType(Compile) {
            options.encoding = 'UTF-8'
        }
    
        def getVersionCode = { ->
            return getDate()
        }
    
        def getDate() {
            def date = new Date()
            return date.getTime().toInteger() + 1000000000
        }
    
        def getVersionName = { ->
            try {
                def stdout = new ByteArrayOutputStream()
                exec {
                    commandLine 'git', 'describe', '--tags', '--dirty'
                    standardOutput = stdout
                }
                return stdout.toString().trim()
            }
            catch (ignored) {
                return null;
            }
        }
    
        dependencies {
            compile fileTree(dir: 'libs', include: '*.jar')
            compile 'com.android.support:support-v13:19.0.0'
            compile 'com.android.support:support-v4:19.1.0'
            compile 'com.fasterxml.jackson.core:jackson-databind:2.3.0'
    
            compile project(':lib-volley')
            compile project(':lib-pulltorefresh')
            compile project(':lib-player')
    
            androidTestCompile 'org.hamcrest:hamcrest-all:1.3'
            androidTestCompile 'org.mockito:mockito-core:1.9.5'
            androidTestCompile 'junit:junit:4.11'
            androidTestCompile('org.robolectric:robolectric:2.3:jar-with-dependencies') {
                exclude module: 'classworlds'
                exclude module: 'maven-artifact'
                exclude module: 'maven-artifact-manager'
                exclude module: 'maven-error-diagnostics'
                exclude module: 'maven-model'
                exclude module: 'maven-plugin-registry'
                exclude module: 'maven-profile'
                exclude module: 'maven-project'
                exclude module: 'maven-settings'
                exclude module: 'nekohtml'
                exclude module: 'plexus-container-default'
                exclude module: 'plexus-interpolation'
                exclude module: 'plexus-utils'
                exclude module: 'wagon-file'
                exclude module: 'wagon-http-lightweight'
                exclude module: 'wagon-http-shared'
                exclude module: 'wagon-provider-api'
            }
            androidTestCompile 'com.squareup:fest-android:1.0.7'
    
            testCompile 'org.hamcrest:hamcrest-all:1.3'
            testCompile 'org.mockito:mockito-core:1.9.5'
            testCompile 'junit:junit:4.11'
            testCompile('org.robolectric:robolectric:2.3:jar-with-dependencies') {
                exclude module: 'classworlds'
                exclude module: 'maven-artifact'
                exclude module: 'maven-artifact-manager'
                exclude module: 'maven-error-diagnostics'
                exclude module: 'maven-model'
                exclude module: 'maven-plugin-registry'
                exclude module: 'maven-profile'
                exclude module: 'maven-project'
                exclude module: 'maven-settings'
                exclude module: 'nekohtml'
                exclude module: 'plexus-container-default'
                exclude module: 'plexus-interpolation'
                exclude module: 'plexus-utils'
                exclude module: 'wagon-file'
                exclude module: 'wagon-http-lightweight'
                exclude module: 'wagon-http-shared'
                exclude module: 'wagon-provider-api'
            }
            testCompile 'com.squareup:fest-android:1.0.7'
        }
    
        android {
            compileSdkVersion rootProject.compileSdkVersion
            buildToolsVersion rootProject.buildToolsVersion
    
            defaultConfig {
                minSdkVersion rootProject.minSdkVersion
                targetSdkVersion rootProject.targetSdkVersion
                versionCode getVersionCode()
                versionName getVersionName()
            }
    
        ... # signingConfigs and productFlavors removed
    
            buildTypes {
                debug {
                    packageNameSuffix ".debug"
                    versionNameSuffix " debug"
                    debuggable true
                    jniDebugBuild true
                }
                trial {
                    packageNameSuffix ".trial"
                    versionNameSuffix " trial"
                    signingConfig signingConfigs.debug
                    debuggable true
                    jniDebugBuild true
                }
                release {
                    runProguard false
                    proguardFile 'proguard-android.txt'
                    proguardFile getDefaultProguardFile('proguard-android.txt')
                    debuggable false
                    jniDebugBuild false
                    signingConfig signingConfigs.release
                    zipAlign true
                }
            }
    
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    res.srcDirs = ['res']
                }
                trial {
                    assets.srcDirs = ['assets']
                }
                release {
                    assets.srcDirs = ['assets-release']
                }
                debug {
                    assets.srcDirs = ['assets']
                }
                androidTest.setRoot('src/test')
            }
    
            packagingOptions {
                exclude 'META-INF/LICENSE'
                exclude 'META-INF/NOTICE'
                exclude 'META-INF/LICENSE.txt'
                exclude 'META-INF/DEPENDENCIES'
            }
    
            lintOptions {
                disable 'ValidFragment'
            }
        }
    
        if (project.hasProperty('keyAlias')) {
            android.signingConfigs.release.keyAlias = keyAlias
        }
    
        androidTest {
            include '**/*Test.class'
        }
    
        apply plugin: 'idea'
    
        idea {
            module {
                testOutputDir = file(rootProject.testOutputDir)
            }
        }
    
        task copyDependencies(type: Copy) {
            description = 'Copy dependencies to a libraries folder. Useful for Eclipse'
            ext.libDir = new File(project.projectDir, '/libraries')
            println libDir
            ext.srclibDir = new File(project.projectDir, '/libs')
            println srclibDir
            println 'Adding dependencies from lib directory'
            copy
            {
                from srclibDir
                into libDir
            }
            println 'Adding dependencies from compile configuration'
            for (file in configurations.compile) {
                copy
                        {
                            from file
                            into libDir
                        }
            }
            println 'Adding dependencies from releaseCompile configuration'
            for (file in configurations.releaseCompile) {
                copy
                        {
                            from file
                            into libDir
                        }
            }
            println 'Adding dependencies from debugCompile configuration'
            for (file in configurations.debugCompile) {
                copy
                        {
                            from file
                            into libDir
                        }
            }
    
            println 'Adding dependencies from androidTestCompile configuration'
            for (file in configurations.androidTestCompile) {
                copy
                        {
                            from file
                            into libDir
                        }
            }
        }
    

    任何有关如何使Gradle看到v13库的想法将不胜感激。

    最佳答案

    解决了。

    该错误是在for循环开始时在copyDependencies任务内发生的。似乎gradle不会使用sdk / extras / m2repository来解决依赖关系。以下应该有效...

    repositories {
         def androidHome = System.getenv("ANDROID_HOME")
         mavenCentral()
         maven {
             url "$androidHome/extras/android/m2repository/"
         }
    }
    

    ...但是没有。我认为gradle无法拾起ANDROID_HOME存在问题。最后,我将整个android / m2repository复制到.m2 / repository,然后在父代构建脚本中使用mavenLocal()而不是尝试访问sdk存储库。

    另一种方法可能是将exclude module: 'support-v13'添加到robolectric依赖项排除项中,但是project在其他地方需要它。

    07-26 07:22