【问题标题】:Android Build: Classes of a JAR file inside a AAR package are not recognizedAndroid Build:无法识别 AAR 包内的 JAR 文件的类
【发布时间】:2014-08-25 08:15:12
【问题描述】:

我有一个想要作为 AAR 文件共享的库项目。

这个库项目包含几个 JAR 文件,其中一些是我制作的类并在库项目中使用。例如,我在 lib 项目中有一个类继承自 JAR 文件中的一个类。

我能够创建 AAR 文件,现在我正在 Android Studio 中制作的示例应用中测试 AAR 文件。

我添加了修改 app 模块的 build.gradle 文件的 AAR 文件,如下所示:

repositories {
    flatDir {
        dirs 'libs'
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'mightylibrary', ext:'aar')
    compile 'com.android.support:appcompat-v7:20.+'
}

然后,当我尝试使用父类中的方法时,我看不到它们,只能看到子类中实现的方法。

访问打包在 AAR 文件中的 JAR 中的类是否存在任何已知限制?

有什么办法吗?

谢谢

【问题讨论】:

  • 如果您解压缩 aar(即 zip),您会从 jar 中看到您的课程吗?
  • 是的,AAR 文件中有一个 classes.jar。还有其他文件夹“assets”、“libs”等。在“libs”文件夹中,我可以看到我的库项目需要的 jars。如果我解压缩 classes.jar 文件,我可以看到库项目中的类。

标签: java android android-studio gradle aar


【解决方案1】:

看来我错过了添加这个

repositories {
    jcenter()
    mavenLocal() // Missed this
}

在项目(不是模块)的 build.gradle 文件中,它可以在本地缓存存储库中搜索。看起来很有趣的是为什么它检测到“classes.jar”中的类,但没有检测到我的 AAR 文件的“libs”文件夹中的其他 jars。有趣...

【讨论】:

  • 感谢分享!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多