Gradle在错误的项目的lib文件夹中寻找aar

时间:2016-01-27 16:22:57

标签: android android-gradle

我有一个由多个项目组成的Android应用程序。其中一个项目是一个只扩展Application对象的App项目。

在该app项目的build.gradle中,我将其他项目添加为依赖项。

我刚刚创建了一个新模块来存放我想要使用的SDK(aar)。我还将它添加到了我的应用项目的build.gradle。

compile project(':newmodule-thesdk')

在newmodule-thesdk的libs文件夹中,我添加了aar文件。我们称之为theddk.aar。

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile(name:'thesdk-1.0', ext:'aar')
}

当我尝试同步gradle时,同步失败,因为我的 app 项目的libs文件夹中不存在.sdk-1.0。为什么要在那里寻找呢?为什么不只是在newmodule-thesdk项目中找到它?

4 个答案:

答案 0 :(得分:3)

似乎解决了我在App项目的build.gradle中执行以下操作所需的问题。

    repositories {
        flatDir {
            dirs project(':newmodule-thesdk').file('libs')
        }
    }

答案 1 :(得分:0)

我遇到了类似的问题,我刚刚将xxx.aar更改为xxx-N.N.aar,在您的情况下thesdk.aar更改为thesdk-1.0.aar,然后它运行良好

答案 2 :(得分:0)

您只需以这种方式更改代码

dependencies {
    compile fileTree(include: ['thesdk-1.0.aar'], dir: 'libs')
}

请记住该文件应该存在!

答案 3 :(得分:0)

你可以做两种方法

1)正如你已经说过的那样:

 repositories {
        flatDir {
            dirs project(':newmodule-thesdk').file('libs')
        }
    }

可以这样做

2)你可以创建一个新的gradle项目,包括sdk并引用旧的代码项目。

然后引用旧项目,当你不想包含sdk时以及当你想要包含sdk引用时新的gradle项目