Android Studio-MavenCentral依赖项同步正常,但无法解析符号

Android Studio-MavenCentral依赖项同步正常,但无法解析符号,android,android-studio,gradle,maven-central,Android,Android Studio,Gradle,Maven Central,因此,我设法创建了一个Android库组件,并将其发布在Maven Central上。但当我试图在一个新项目中将其作为依赖项使用时,Android Studio似乎找不到类 应用程序模块的build.gradle: repositories { mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:app

因此,我设法创建了一个Android库组件,并将其发布在Maven Central上。但当我试图在一个新项目中将其作为依赖项使用时,Android Studio似乎找不到类

应用程序模块的build.gradle:

repositories {
    mavenCentral()
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'no.hyper:libdateintervalpicker:1.0.0' //this is the one I want to use
}
这部分似乎工作,至少我没有同步错误。然而,当尝试从我的MainActivity访问包和类时,Android Studio找不到它们,并给我无法解析符号消息

我已经尝试直接从Maven Central从归档文件下载classes.jar,它们确实在包中

其他依赖项似乎在同步后出现在/build/intermediates/aar文件夹中,但我的库没有出现这种情况

我在OSX 10.9.5 Mavericks上使用Android Studio 1.0.2


有什么建议吗?

查看您的pom,它声明aar.asc。它应该是aar。

哦,真正能够使用该库的答案是将@aar添加到依赖项中,以便它现在可以读取

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'no.hyper:libdateintervalpicker:1.0.0@aar' //note the magic @aar
}
编辑: 移除块

configurations {
    archives {
        extendsFrom configurations.default
    }
}

让Gradle使用正确的打包条目生成pom,从而可以引用不带@aar后缀的依赖关系

BTW,为什么你只需要使用Bintray jcenter就可以使用Maven Central?因为直到几小时前,我还以为Maven Central是你要去的地方,但我现在也会研究jCenter。酷:我的解决方案有帮助吗?Re jcenter,也看看,你可以很容易地两者兼得。好吧,你的解决方案让我走上了一条轨道,这似乎是同一个问题,我还发现其他人指出这是Android Studio或Maven Central/Sonatype在过程中搞乱了事情。这不是一个解决方案,这是一个解决办法。如果不添加类型,Gradle将尝试获取pom.xml中提到的类型,这是不正确的请参见我的答案。你可以通过显式地添加类型来强迫Gradle忽略pom中的类型,就像你做的那样,但真正的解决方案是修复pom。那么,问题是为什么?。我还没有实际接触pom,但我已经在build.gradle中指定了包装'aar'我的pom.project块。我猜这意味着gradle包装系统坏了,那么?嗯。您指定aar,它在生成的pom.xml中生成aar.asc?你肯定吗?如果是这样的话,那就是格拉德尔的一只虫子。也许你应该报告它,并使用变通方法,直到它被修复。是的,我是肯定的,它看起来确实像一个错误,我梯度。有关其他解决方案/解决方法,请参见我编辑的答案。