В ProjectScopeServices нет службы типа Factory.


127
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'

// load properties
Properties properties = new Properties()
File localPropertiesFile = project.file("local.properties");
if(localPropertiesFile.exists()){
    properties.load(localPropertiesFile.newDataInputStream())
}
File projectPropertiesFile = project.file("project.properties");
if(projectPropertiesFile.exists()){
    properties.load(projectPropertiesFile.newDataInputStream())
}

//read properties
def projectName = properties.getProperty("project.name")
def projectGroupId = properties.getProperty("project.groupId")
def projectArtifactId = properties.getProperty("project.artifactId")
def projectVersionName = android.defaultConfig.versionName
def projectPackaging = properties.getProperty("project.packaging")
def projectSiteUrl = properties.getProperty("project.siteUrl")
def projectGitUrl = properties.getProperty("project.gitUrl")

def developerId = properties.getProperty("developer.id")
def developerName = properties.getProperty("developer.name")
def developerEmail = properties.getProperty("developer.email")

def bintrayUser = properties.getProperty("bintray.user")
def bintrayApikey = properties.getProperty("bintray.apikey")

def javadocName = properties.getProperty("javadoc.name")

group = projectGroupId

install {
    repositories.mavenInstaller {
        pom {
            project {
                name projectName
                groupId projectGroupId
                artifactId projectArtifactId
                version projectVersionName
                packaging projectPackaging
                url projectSiteUrl
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        id developerId
                        name developerName
                        email developerEmail
                    }
                }
                scm {
                    connection projectGitUrl
                    developerConnection projectGitUrl
                    url projectSiteUrl
                }
            }
        }
    }
}

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

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
}

javadoc {
    failOnError false

    options{
        encoding 'UTF-8'
        charSet 'UTF-8'
        author true
        version projectVersionName
        links "http://docs.oracle.com/javase/7/docs/api"
        title javadocName
    }
}

bintray {
    user = bintrayUser
    key = bintrayApikey
    configurations = ['archives']
    pkg {
        repo = "maven"
        name = projectName
        websiteUrl = projectSiteUrl
        vcsUrl = projectGitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

используйте это для загрузки кода в bintray, это приведет к ошибке: No service of type Factory available in ProjectScopeServices. если я использую gradle 2.10, будет работать нормально, но в версии 2.14.1 (предварительный просмотр AS 2.2 требует 2.14.1) появится эта ошибка!


У меня такая же проблема, о которой сообщается здесь: code.google.com/p/android/issues/detail?id=219692 (к сожалению, заголовок плохо редактировался)
разработчик Android,

Ответы:


396

Измените версию плагина maven gradle на 1.4.1 в файле проекта build.gradle

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.2'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
}

эта версия загружена?
Фанг,

Ребята, нужно ли, чтобы эти зависимости и фрагмент пути к классам находились в разделе buildscript файла build.gradle?
Аарон

12
Может кто-нибудь объяснить, как это решает проблему?
Нил Галиаскаров

4
Ошибка выдачи: не удалось найти com.github.dcendent: android-maven-plugin: 1.4.1.
Abhijeet

1
Я, черт возьми, не понимаю, но это сработало, и меня это тоже разозлило.
yUdoDis

7

Просто добавьте эту строку кода в уровень вашего проекта.

dependencies{
   classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}

0

Мы не должны использовать какую-либо статическую версию для плагина maven gradle. Проверьте свой distributionUrl из файла gradle-wrapper.properties в корневой папке студии Android. На основе упомянутой там версии gradle вы можете найти подходящую версию плагина maven gradle по этой ссылке

просто обновите ту версию, которая может решить вашу проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.