无法规范化 bintrayUpload 中的路径

Could not normalize path in bintrayUpload

我在 运行 gradlew install 时遇到以下错误。

Failed to capture snapshot of input files for task 'javadoc' during up-to-date check. See stacktrace for details.

Could not normalize path for file 'C:\android\sdk\platforms\android-23\android.jar;C:\android\sdk\platforms\android-23\optional\org.apache.http.legacy.jar'

项目的build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:1.3.0'
    classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
    classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}
allprojects {
repositories {
    jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

库模块的build.gradle:

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


ext {
bintrayRepo = 'maven'
bintrayName = 'befrest'

publishedGroupId = 'com.oddrun.libraries'
libraryName = 'Befrest'
artifact = 'befrest'

libraryDescription = 'Simple Push Notification Library For Android'

siteUrl = 'https://github.com/hojjat-imani/PushNotif'
gitUrl = 'https://github.com/hojjat-imani/PushNotif.git'

libraryVersion = '0.0.1'

developerId = 'hojjat-imani'
developerName = 'Hojjat Imani'
developerEmail = 'imani.hojjat95@gmail.com'

licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
}

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
useLibrary  'org.apache.http.legacy'

defaultConfig {
    minSdkVersion 10
    targetSdkVersion 23
    versionCode 0
    versionName "0.0.1"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
}




version = libraryVersion

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
}

// Bintray
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")

configurations = ['archives']
pkg {
    repo = bintrayRepo
    name = bintrayName
    desc = libraryDescription
    websiteUrl = siteUrl
    vcsUrl = gitUrl
    licenses = allLicenses
    publish = true
    publicDownloadNumbers = true
    version {
        desc = libraryDescription
        gpg {
            sign = true //Determines whether to GPG sign the files. The default is false
            passphrase = properties.getProperty("bintray.gpg.password")
            //Optional. The passphrase for GPG signing'
        }
    }
}
}



group = publishedGroupId                               // Maven Group ID for the artifact

install {
repositories.mavenInstaller {
    // This generates POM.xml with proper parameters
    pom {
        project {
            packaging 'aar'
            groupId publishedGroupId
            artifactId artifact

            // Add your description here
            name libraryName
            description libraryDescription
            url siteUrl

            // Set your license
            licenses {
                license {
                    name licenseName
                    url licenseUrl
                }
            }
            developers {
                developer {
                    id developerId
                    name developerName
                    email developerEmail
                }
            }
            scm {
                connection gitUrl
                developerConnection gitUrl
                url siteUrl

            }
        }
    }
}
}

android23 中的 apache http 似乎有问题。 只需将 compileSdkVersion 23 更改为 22 并删除 useLibrary 'org.apache.http.legacy' 即可解决问题。

您可以在您的 libs 文件夹中添加 org.apache.http.legacy.jar。 您可以在 Android/Sdk/platforms/android-23/optional

中找到此 jar

我也将这一行添加到我的 app.gradle 文件中

compile files('libs/org.apache.http.legacy.jar')

但是如果你正在使用更多的库,你可以使用这种方式

compile fileTree(dir: 'libs', include: ['*.jar'])

这解决了我因 google 删除对 Apache HTTP 客户端的支持而导致的所有错误。不要把compileSdkVersion 23改成22,我觉得这个方案比较好