2016-03-19 17 views
5

Niedawno zaktualizowałem Android Studio do wersji 2.0: Beta 7. Próbuję użyć Instant Run, właśnie zainstalowałem Gradle 2.0. Ale teraz nie mogę skompilować mojego projektu z powodu błędu związanego z bintray.gradleVolley nie działa z Gradle 2.0 i Instant run

Kiedy kompilacji pojawia się następujący błąd:

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

Debugger błąd:

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 
      } 
     } 
    } 
} 
+0

Mam to samo. Wygląda na to, że może pojawić się błąd w nowej wersji beta 7/alpha 3 programu Gradle, jest zgłoszenie błędu i zostało oznaczone jako krytyczne, więc mam nadzieję na poprawkę wkrótce. https://code.google.com/p/android/issues/detail?id=204329 – oiZo

+0

@oiZo Dziękuję za odpowiedź, jeśli widzisz jakieś dobre wieści o tym, nie zapomnij opublikować rozwiązania tutaj :) – Germain

+0

Mam również do czynienia z tym samym problemem. – Sushil

Odpowiedz

2

comment the line in volley build.gradle

Napotkałem ten sam problem, gdy aktualizuję najnowszą wersję. Próbowałem zrobić to i osiągnąć sukces.

+0

Podczas komentowania tej linii w 'build.gradle' sprawi, że projekt się skompiluje, to nie rozwiąże problemu. Dzięki tej "poprawce" nie będziesz w stanie tworzyć automatycznych buildów do bintray. – oiZo

0

Sprawcą jest tag publishing użyty w bintray.gradle projektu Volley. Aktualizacja oprogramowania Gradle 2.0.0 nie pozwala na skonfigurowanie aplikacji po jej uzyskaniu.

Na razie komentowanie następującej linii w build.gradle z Volley projektu spowoduje uruchomienie kompilacji.

//apply from: 'bintray.gradle' 

Zainsponuję komentarz raz mieć lepsze rozwiązanie.

0

Nie skomentować ten wiersz:

apply from: 'bintray.gradle' 

prostu zmienić te linię kodów

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 
    } 
} 
} 

do

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 
} 
} 
0

wydawniczych {publikacjach {}}, to w salwie pliki dodane do projektu. Nie trać czasu na szukanie w projekcie.

Powiązane problemy