Android App Bundle构建失败

时间:2018-05-10 18:30:38

标签: android android-studio android-gradle

我在使用名为App Bundle的新Google功能构建应用时遇到问题。

当我运行./gradlew app:packageProductionReleaseBundle --stacktrace命令时,我会收到:

Execution failed for task ':app:packageProductionReleaseBundle'.
            java.util.concurrent.ExecutionException: com.android.tools.build.bundletool.exceptions.ValidationException: Error validating module 'base'.
                              ...
                           LONG STACK TRACE...
                              ...
Caused by: com.android.tools.build.bundletool.exceptions.BundleFileTypesException$FileUsesReservedNameException: File 'root/res/drawable/adoceansdk_close_interstitial_button.png' uses reserved file or directory name 'res'.
                at com.android.tools.build.bundletool.validation.BundleFilesValidator.validateModuleFile(BundleFilesValidator.java:112)
                at com.android.tools.build.bundletool.validation.ValidatorRunner.lambda$validateBundleModules$6(ValidatorRunner.java:73)
                at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406)
                at com.android.tools.build.bundletool.validation.ValidatorRunner.validateBundleModules(ValidatorRunner.java:73)

原因是我们使用的.jar中的外部库。

如何在不删除此库的情况下修复它?

提前感谢您的回答。

2 个答案:

答案 0 :(得分:3)

如果要在Android应用中使用此外部库,我相信它应该导出为AAR,而不是JAR。见https://developer.android.com/studio/projects/android-library

答案 1 :(得分:-1)

其中一个解决方案是你可以获得这个谷歌模块的预编译库文件。我觉得有点谷歌。搜索将帮助您。我自己会这样做,但我没有得到你要问的模块的名称。

因此,尝试以这种方式搜索lib.so文件,您将获得模块提供的功能,现在不需要编译它。

另一个优点是从头开始编译模块会导致更大的apk大小,而使用预编译库会导致更小的apk大小。