我最近将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
}
}
}
}
答案 0 :(得分:2)
我在更新最新版本时遇到了同样的问题。 我尝试过这样做并取得成功。
答案 1 :(得分:0)
罪魁祸首是Volley项目publishing
中使用的bintray.gradle
标记。
使用Gradle 2.0.0更新后,无法在访问publishing
后对其进行配置抱怨。
现在评论build.gradle
Volley
项目的//apply from: 'bintray.gradle'
中的以下行将进行构建。
{{1}}
我会更新评论一次有更好的解决方案。
答案 2 :(得分:0)
不要评论这一行:
var express = require('express');
var fs = require('fs');
var app = express();
var util = require('util');
var mongoose = require('mongoose');
var schema = mongoose.Schema;
var studSchema = new schema({
id : {type:Number, unique:true, required:true},
name : {type:String, required:true},
grade : Number,
course : {type:String},
year : Number
},{collection: 'details'});
var stud = mongoose.model('stud', studSchema);
module.exports = function (app) {
app.get('/getAll', function(req, res) { // if url in path is getAll
stud.find({}, function(err, user){
if(err) throw err;
console.log(user);
});
})
});
只需更改这些代码行
apply from: 'bintray.gradle'
到
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
}
}
}
答案 3 :(得分:0)
发布{publications {}},它位于您添加到项目中的排球文件中。不要浪费时间在项目中找工作。