Android 多个AAR文件

Android 多个AAR文件,android,android-studio,aar,Android,Android Studio,Aar,我正在使用Android Studio 1.2 我创建了一个私有库,我想在另一个应用程序中使用它 为了使用它,我创建了一个AAR文件,但这个AAR不起作用。我的库中有一个AAR文件的依赖项 AAR文件不包含依赖项吗 如果我使用jar并包含ans来创建所有依赖项,那么项目就可以正常工作 注意: 我知道如何导入AAR文件。问题是在AAR中使用AAR 谢谢。将以下代码添加到project build.gradle文件中,您应该将AAR文件放到libs文件夹中 repositories { ma

我正在使用Android Studio 1.2

我创建了一个私有库,我想在另一个应用程序中使用它

为了使用它,我创建了一个AAR文件,但这个AAR不起作用。我的库中有一个AAR文件的依赖项

AAR文件不包含依赖项吗

如果我使用jar并包含ans来创建所有依赖项,那么项目就可以正常工作

注意:

我知道如何导入AAR文件。问题是在AAR中使用AAR


谢谢。

将以下代码添加到project build.gradle文件中,您应该将AAR文件放到libs文件夹中

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}
最后,将编译信息添加到依赖项:

dependencies {
    compile(name:'AARFileName', ext:'aar')
}

如果我正确理解您的问题,则涉及3个项目:

库项目2-->库项目1-->应用程序项目

您正在编辑“Library Project 1”,并已添加到它的app/build.grade依赖于Library Project 2的aar。类似这样的内容:
compile'com.arasthel:gnavdrawer-library:1.1.5'

我不确定你在哪里遇到了问题,但我还是会尝试回答。如果我完全偏离了基准,你能详细说明AAR依赖项是如何不起作用的吗?任何错误消息?、未找到类/资源等

我认为您不太可能无法在库项目1中使用库项目2中的类,因为我自己刚刚尝试过,它似乎工作得很好。值得注意的是,libraryproject1aar文件将不包含libraryproject2中的类或资源。如果使用gradle的maven插件发布库项目1,库项目2将在库项目1的pom中作为依赖项进行发布

我猜您在应用程序项目中遇到了问题?可能在应用程序项目中找不到库项目2中的类? 如果这是正确的,那么有两种可能的解决方案:

  • 在应用程序项目的app/build.gradle中对aar依赖项启用可传递依赖项:而不是
    compile'com.example:myLibrary:versionX'
    ,使其
    compile('com.example:myLibrary:versionX'){transitive=true}
    。我刚刚验证了这会导致gradle读取库项目1的pom,并自动将在其中找到的依赖项添加到应用程序项目中

    如果您想使用可传递依赖项,您的库项目将需要生成pom并将其与aar一起发布。请参阅,以获取有关如何使其工作的更多信息

  • 手动将对库项目2的依赖项添加到应用程序项目中,以便应用程序对这两个库都有依赖项行。根据您的具体情况,这可能是一个可行的解决方案,也可能不是


  • 你问题的第二行似乎与最后一行相冲突。如果您希望在另一个AAR中依赖AAR,这意味着您希望在库项目中使用AAR,但第二行表示“我希望在另一个应用程序中使用该AAR”找到解决方案了吗?使用
    gradlew uploadArchives
    将库项目发布到本地maven repo比将libs文件夹添加为本地存储库要好得多。这里有一些关于这样做的信息:你的计划是好的。我有4个库项目2,但这并不能改变问题。实际上,我只希望有一个包含所有依赖项的AAR文件。现在,我们将库项目2作为应用程序项目的依赖项,与库项目1一起使用。这有点混乱。好吧,听起来你已经在使用选项2(手动向应用程序添加额外的依赖项)。使用可传递依赖项(选项1)将允许您在库项目1中指定依赖项一次。@StanKurdziel我刚刚尝试了您的建议,它对我很有吸引力。以下是我的问题的链接: