Android studio Android Studio:包括来自图书馆项目的AAR图书馆

Android studio Android Studio:包括来自图书馆项目的AAR图书馆,android-studio,gradle,aar,Android Studio,Gradle,Aar,在我的Android Studio项目中,我有两个子项目/模块:一个Android应用程序(App1)和一个Android库项目(LibraryProject1)应用程序1取决于图书馆项目1。到目前为止还不错 然而,LibraryProject1需要导入AAR库才能正常工作 所以我的配置如下: App1包括LibraryProject1 LibraryProject1包括dependency.aar 现在,为了包含dependecy.aar,我使用这里详述的方法: 因此,基本上在我的build

在我的Android Studio项目中,我有两个子项目/模块:一个Android应用程序(
App1
)和一个Android库项目(
LibraryProject1
)<代码>应用程序1取决于
图书馆项目1
。到目前为止还不错

然而,
LibraryProject1
需要导入AAR库才能正常工作

所以我的配置如下:
App1
包括
LibraryProject1

LibraryProject1
包括
dependency.aar

现在,为了包含
dependecy.aar
,我使用这里详述的方法:

因此,基本上在我的
build.gradle
中,对于
LibraryProject1
我有:

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile (name:'dependency', ext:'aar') //my AAR dependency
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.1.1'
}
显然,我将dependency.aar文件放在LibraryProject1的libs目录中

然而,这不起作用。似乎完全忽略了由
LibraryProject1
添加的存储库,并且本地“libs”文件夹未作为存储库包含,从而导致编译失败

如果我从
App1
build.gradle
添加存储库,它可以工作,但我不想这样做,需要AAR文件的是
LibraryProject1
,而不是
App1


我如何做到这一点呢?

我也遇到了同样的问题,我将所有库放在LibraryProject1/libs中的LibraryProject1上作为.jar。 我认为aar库不能链接到另一个aar库。 希望对你有帮助,,
致以最诚挚的问候

好吧,我找到了一种方法,但由于它非常“粗糙”,我将保留这个问题,以防有人提出更好的“适当”解决方案

基本上,问题是如果从
LibraryProject1
的build.gradle脚本中包含
flatDir
存储库,则在编译时会忽略该存储库,因此我要做的是使用
App1
的build.gradle在
LibraryProject1
中“注入”flatDir存储库。大概是这样的:

//App1 build.gradle
dependencies {
    //get libraryproject1 Project object
    Project p = project(':libraryproject1')

    //inject repository
    repositories{
        flatDir {
            dirs p.projectDir.absolutePath + '/libs'
        }
    }

    //include libraryproject1
    compile p
}
这有效地允许
LibraryProject1
包含外部AAR库,而无需
App1
包含它。这很粗糙,但很有效。请注意,您仍然需要:

//LibraryProject1 build.gradle
repositories {
    flatDir {
        dirs './libs'
    }
}

LibraryProject1
的build.gradle中,否则,即使项目本身编译良好,IDE也无法识别AAR库中包含的类型。注意路径中的
/
似乎也很重要,没有它IDE仍然无法识别类型。

不幸的是,我使用的AAR是预编译的,我必须使用它。另外,它是一个Android库,因此无论如何都无法转换为JAR。我也面临同样的问题,但由于某些原因,我不得不创建我的库项目的AAR文件。如何将这些文件添加到我的库项目AAR中?如果您使用的是Gradle 3.0.0或更高版本,这个简单的Gradle设置对我来说很有用:嗯,我认为这提供了更好的选择。