【问题标题】:Issue with using .AAR file in other project在其他项目中使用 .AAR 文件的问题
【发布时间】:2015-02-12 12:50:30
【问题描述】:

我必须在另一个项目中使用我的 android 库项目(有资源)。这是我到目前为止所做的:

  1. 在 Android Studio 中创建了一个库项目。构建该项目,因此 .aar 文件生成如下:..\MyApplication\mylibrary\build\outputs\aar\mylibrary-debug.aar

  2. 在 Android Studio 中创建了一个新的 Android 项目。那么,我followed this

    文件>>新建模块>>导入.JAR或.AAR包

这为我的项目提供了以下结构:

在 gradle 同步或我制作项目时没有任何错误。

但是现在,如果我尝试使用我的库项目的类名,它不会显示在自动建议中。我的图书馆项目中有一类MyClass.java。在 IDE 中,如果我尝试编写 MyC,我将看不到 MyClass。它显示没有建议

我是否缺少一些配置?

如果您需要与文件夹结构或build.gradle 文件相关的其他信息,请告诉我。

【问题讨论】:

标签: android android-studio library-project aar


【解决方案1】:

This alternative(感谢 Dwayne)对我来说似乎很好用。总结:

  • 声明您的平面文件存储库。此存储库声明位于项目模块中的 gradle.build 文件中而不是父目录中的顶级 gradle.build 文件:

    repositories{
       flatDir {
         dirs 'libs'
       }
    }
    
  • 将 mylibrary-release.aar 或 mylibrary-debug.aar 从 ..\MyLibraryProject\mylibrary\build\outputs\aar\ 复制到应用程序模块 ..\MyApplicationProject\app\libs 中的 libs 文件夹。

  • 声明你对库的依赖。

    dependencies {
       compile 'com.example.library:mylibrary:release@aar'
    }
    

请注意,“平面文件”存储库会忽略依赖项声明的命名空间部分 (com.example.library),而依赖项声明中的命名空间不正确不会影响任何事情,您应确保命名空间正确,以防万一您稍后会移至库存储库。


另一种选择可能是按照here 的说明创建本地 Maven 存储库,但我没有尝试过此选项。

【讨论】:

  • 即便如此,我在classes.jar 中只得到了MANIFEST.MF,因此无法访问任何类的aar 文件
猜你喜欢
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 1970-01-01
  • 1970-01-01
  • 2016-10-22
  • 2017-08-18
相关资源
最近更新 更多