【问题标题】:Android published library xml attributes not found (AAPT)未找到 Android 发布的库 xml 属性 (AAPT)
【发布时间】:2019-11-26 20:08:02
【问题描述】:

** 见下方编辑 **

我构建了一个多库项目并成功发布到 jitpack.io 上的私有存储库。一些库包含布局文件等形式的资源。我有另一个项目可以实现这些库并且构建良好,但是当我尝试运行它时,我不断收到有关某些布局和导航文件中的属性的错误(来自图书馆):

例如,我正在加载一个名为 fragment_radio_main 的布局文件,该文件是从 com.github.username.libraryname:radio:version 导入的。在该布局中,我有一个RecyclerView,它使用属性app:layoutManager。这就是失败发生的地方

AAPT: error: attribute layoutManager (aka com.organization.appname:layoutManager) not found.
AAPT: error: attribute sc_border_width (aka com.organization.appname:sc_border_width) not found.
AAPT: error: attribute sc_corner_radius (aka com.organization.appname:sc_corner_radius) not found.
AAPT: error: attribute sc_tint_color (aka com.organization.appname:sc_tint_color) not found.
AAPT: error: attribute defaultNavHost (aka com.organization.appname:defaultNavHost) not found.

在上述日志中,layoutManager 来自 RecyclerView,前缀为 sc_* 的属性来自我的一个布局使用的第 3 方库,defaultNavHost 来自导航中的 NavHostFragment图书馆。还有更多的属性失败了,但我相信这很重要。

aka行(aka com.organization.appname:sc_tint_color)中,sc_tint_color属性实际上并不是com.organization.appname定义的属性,而是由第 3 方定义。也许需要进行一些配置来解决这些属性?我只是坚持这一点。

如果您需要更多信息,我很乐意提供。任何帮助将不胜感激。

** 2019 年 11 月 27 日编辑 **

事实证明,如果我将 Radio 库导入到我当前的项目中,我还必须添加我的 Radio 库使用的任何第 3 方依赖项,这些依赖项包含我当前项目中的资源(具体而言,在这种情况下是可样式化的)文件,以访问这些属性。

所以我想我的问题是,有人知道如何避免这样做吗?

【问题讨论】:

  • 任何解决方案@James
  • @bhardwaj 还没有
  • 除了手动导入还有什么?

标签: android aapt


【解决方案1】:

只需将库中的依赖项添加为api 而不是implementation。然后,您将在引用它的模块中使用它,而无需复制这些依赖项。

【讨论】:

  • 您的一般回答不适合这个问题。我们已经这样做了,但是问题存在。所以这背后还会有其他原因。
  • 只是不要使用com.github.username.libraryname:radio:version,而是使用本地版本......我的回答很适合这个问题,因为这完全是关于该库项目的build.gradle - 以及使用前-built 版本,这意味着无法更改它。
  • 正如我从您的回答中意识到的那样,您说不要使用远程依赖仓库中的真正依赖并将整个项目抓取到我们的项目中。这不是正确的答案,因为我们不是在解决问题,而是在改变问题。问题是在使用第三方存储库和使用 api 依赖项时出现与 XML 相关的错误。
  • 马丁,你能澄清你的答案吗?我尝试使用api,但仍然遇到同样的问题。我也在使用我导入的本地 .aar 文件。
  • @JeffPadgett Gradle 文档解释了可见性的差异......另一个可能的原因可能是构建了 JAR 而不是 AAR(它具有 Android 资源)。
猜你喜欢
  • 2020-03-17
  • 2020-07-06
  • 2022-07-19
  • 1970-01-01
  • 2021-04-09
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多