【发布时间】:2014-09-15 19:42:51
【问题描述】:
所以,事情是这样的,我有一个 .aar 文件,当我将其添加为依赖项时,如下所示:
compile('com.foo:bar:1.0.0@aar')
它会生成以下文件:
build > intermediates > exploded-aar > com.foo > bar > bar-1.0.0
其中包含classes.jar、sources等
但是,它应该执行以下操作:
build > intermediates > exploded-aar > com.foo > bar > 1.0.0
有人知道为什么我的 aar 没有正确导入吗?
这是个问题,因为在构建gradle的时候会出现如下错误:
com.android.manifmerger.ManifestMerger2$MergeFailureException: java.io.FileNotFoundException: /build/intermediates/exploded-aar/com.foo/bar/1.0.0/AndroidManifest.xml (No such file or directory)
但是,在bar-1.0.0目录中却清晰可见。
编辑:更多信息
- 在 5 台机器上测试。全部运行 AS 0.8.9,全新安装,全新克隆。
- 经过 Jdk 1.6 和 1.7 测试
- --refresh-dependencies 调用以确保已收集任何更改
没有任何作用。
【问题讨论】:
-
为什么构建系统在其中间输出中使用什么文件名很重要?
-
更新问题以解释原因
-
您是否有可能在某处运行非常旧版本的 android-gradle 插件?我隐约记得它曾经解压到中间目录的第一个命名约定中,但那是很久以前的事了。不过,我很困惑,因为清单合并是一种更现代的东西。我想知道您是否可以运行两个版本的插件。
-
我该如何检查呢?这就是在全新下载的 AS 0.8.9 和最新的 gradle 上运行 gradle 同步所发生的事情。
-
将您的构建文件附加到您的问题中。