Android的AAR LIB - 资源对链接失败

问题描述 投票:1回答:1

我试图Android应用转换为LIB模块,而不复制源。我做到了(修改后的build.gradle文件),并同步并建立,但是当我添加的依赖,从而导致AAR文件到另一个项目(在这里我想用这个LIB)构建失败和资源链接失败。

我不明白为什么:

  • 原来的应用程序构建并运行
  • LIB模块(从应用程序转换)构建
  • 使用AAR从LIB项目没有建立,并在此AAR发现错误。

例如,可能的错误之一是:

Android resource linking failed
error: resource style/TextAppearance.Design.Tab (aka bv.dev.aarlibtester:style/TextAppearance.Design.Tab) not found.
error: failed linking references.

所以说,资源没有找到,并指向我在LIB使用的依赖关系(在这个例子是design

我创建的测试项目来演示这个简单的例子。

Github

  • aar-res-app是使用design依赖简单的应用程序项目
  • aar-res-lib是从这个项目中创建库(转换)
  • aar-res-lib-tester是使用该LIB简单的应用程序项目。

目前,我改名为库包不与应用程序包匹配,并采用jar代替aar的。

我创建它使用Gradle -> root -> Tasks -> Other -> createFullJarRelease

结果是Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar

java android android-studio gradle aar
1个回答
1
投票

所以,真正的问题是aarjar这种方式创建不包含上他们依赖库。如果添加库这种方式,你需要它的所有依赖添加到使用它的项目。

在我的例子是implementation 'com.android.support:design:28.0.0'

如果项目包含了很多这样的依赖关系,你应该添加他们。但你仍然可以在问题,如“清单合并失败”等问题上运行。

或者你可以尝试部署你的lib到Maven或jitpack,但你需要正确设置是为了确保将所有需要的依赖将生成的POM文件,以便能够方便地使用这个库。

© www.soinside.com 2019 - 2024. All rights reserved.