5

最近、Android Studio をバージョン 2.0 : Beta 7 に更新しました。Instant Run を使用しようとしています。Gradle 2.0 をインストールしました。しかし、bintray.gradle に関連するエラーのため、プロジェクトをコンパイルできません。

コンパイルすると、次のエラーが発生します。

Error:Cannot configure the 'publishing' extension after it has been accessed.

デバッガ エラー:

Error:FAILURE: Build failed with an exception.

* Where:
Script 'C:\Project\AtkApp\volley\bintray.gradle' line: 43

* What went wrong:
A problem occurred evaluating script.
> Cannot configure the 'publishing' extension after it has been accessed.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Bintray.gradle :

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2"
    }
}

// apply the plugin with its class name rather than its Id to work around gradle limitation of
// not being able to find the plugin by Id despite the dependencies being added right above. Gradle
// is currently not capable of loading plugins by Id if the dependency is anywhere else than
// in the main project build.gradle. This file is "imported" into the project's build.gradle
// through a "apply from:".
apply plugin: com.jfrog.bintray.gradle.BintrayPlugin
apply plugin: 'maven-publish'

project.ext.group = 'com.android.volley'
project.ext.archivesBaseName = 'volley'
project.ext.version = '1.0.0'
project.ext.pomDesc = 'Volley Android library'

task sourcesJar(type: Jar) {
    classifier = 'sources'
    from android.sourceSets.main.java.srcDirs
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

publishing {
    publications {
        library(MavenPublication) {
            groupId project.ext.group
            artifactId project.ext.archivesBaseName
            version project.ext.version

            // Release AAR, Sources, and JavaDoc
            artifact "$buildDir/outputs/aar/volley-release.aar"
            artifact sourcesJar
            artifact javadocJar
        }
    }
}

bintray {
    user = System.env.BINTRAY_USER
    key = System.env.BINTRAY_USER_KEY

    publications = [ 'library' ]

    publish = project.has("release")
    pkg {
        userOrg = 'android'
        repo = 'android-utils'
        group = project.ext.group
        name = project.ext.group + '.' + project.ext.archivesBaseName
        desc = project.ext.pomDesc
        licenses = [ 'Apache-2.0' ]
        websiteUrl = 'https://tools.android.com'
        issueTrackerUrl = 'https://code.google.com/p/android/'
        vcsUrl = 'https://android.googlesource.com/platform/frameworks/volley.git'
        labels = ['android', 'volley', 'network']
        publicDownloadNumbers = true

        version {
            name = project.ext.version
            desc = project.ext.pomDesc + ' version ' + project.ext.version
            gpg {
                sign = true
                passphrase = System.env.GPG_PASSPHRASE
            }
        }
    }
}
4

4 に答える 4

2

volley build.gradle の行にコメントを付けます

最新バージョンに更新すると、同じ問題に直面しました。私はこれをやろうとしましたが、成功しました。

于 2016-04-09T02:43:03.347 に答える
0

犯人はVolleyプロジェクトでpublishing使われているタグです。Gradle 2.0.0 の更新では、アクセス後に構成できないというbintray.gradle不満があります。publishing

build.gradle今のところ、プロジェクトの次の行にコメントVolleyすると、ビルドが開始されます。

//apply from: 'bintray.gradle'

より良い解決策が得られたら、コメントを更新します。

于 2016-04-19T19:01:40.883 に答える