我在使用名为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中的外部库。
如何在不删除此库的情况下修复它?
提前感谢您的回答。
答案 0 :(得分:3)
如果要在Android应用中使用此外部库,我相信它应该导出为AAR,而不是JAR。见https://developer.android.com/studio/projects/android-library
答案 1 :(得分:-1)
其中一个解决方案是你可以获得这个谷歌模块的预编译库文件。我觉得有点谷歌。搜索将帮助您。我自己会这样做,但我没有得到你要问的模块的名称。
因此,尝试以这种方式搜索lib.so文件,您将获得模块提供的功能,现在不需要编译它。
另一个优点是从头开始编译模块会导致更大的apk大小,而使用预编译库会导致更小的apk大小。