【问题标题】:Gradle/Maven - Error loading aar dependencyGradle/Maven - 加载 aar 依赖项时出错
【发布时间】:2014-06-02 17:40:12
【问题描述】:

我正在将 aar 文件发布到内部 maven 存储库,但是当我尝试像这样引用它时:

dependencies {
    compile 'com.example.android:example-api:0.3-SNAPSHOT'
}

我收到以下错误:

A problem occurred configuring project ':sdk-sample'.
> Artifact 'com.example.android:example-api:0.3-SNAPSHOT:example-api.jar' not found.

这让我感到困惑,因为我没有上传的 jar 文件,而是一个 aar。

gradle 生成并上传的 POM 文件如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example.android</groupId>
    <artifactId>example-api</artifactId>
    <version>0.3-SNAPSHOT</version>
    <packaging>aar</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework.android</groupId>
            <artifactId>spring-android-rest-template</artifactId>
            <version>1.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.2.4</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.squareup.okhttp</groupId>
            <artifactId>okhttp</artifactId>
            <version>1.3.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.android</groupId>
            <artifactId>spring-android-core</artifactId>
            <version>1.0.1.RELEASE</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>

如果我这样引用它:

dependencies {
    compile 'com.example.android:example-api:0.3-SNAPSHOT@aar'
}

然后它成功找到它,但是没有正确下载依赖项,当我调用使用依赖项的方法时,我在运行时收到 NoClassDefFoundError。

知道发生了什么吗?

【问题讨论】:

    标签: android maven gradle


    【解决方案1】:

    传递属性需要根据您的依赖项设置为true:

    compile ('com.example.android:example-api:0.3-SNAPSHOT@aar') { transitive = true }

    对于 aar 依赖项,它可能应该在 Gradle 中默认更改为 true(就像 jar 一样)。

    【讨论】:

      【解决方案2】:

      我遇到了完全相同的问题。将“@aar”附加到依赖项为我修复了它。现在编译运行没有问题。

      【讨论】:

        猜你喜欢
        • 2013-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 2018-07-06
        • 2020-07-04
        • 1970-01-01
        相关资源
        最近更新 更多