无法从命令行使用bundletool构建Android应用程序包

时间:2019-05-02 09:27:12

标签: android android-app-bundle

我正在尝试按照https://developer.android.com/studio/build/building-cmdline#bundletool-build中所述的说明,使用android app bundle从命令行构建bundletool

一个基本上是从Android Studio创建的简单android项目,用于调查哪个项目已在Android Studio上成功编译。

具有编译资源的步骤是可以的,但是在使用aapt2的链接步骤中失败了。经过aapt2-3.4.0-5326820-windows

测试

命令

set ANDROID_TOOL=%ANDROID_SDK%/platforms/android-26/android.jar
%AAPT2% link --proto-format -o output.apk -I %ANDROID_TOOL% --manifest %CURRENT_DIR%/app/src/main/AndroidManifest.xml -R @compiled_resources.txt --auto-add-overlay -v

compiled_resources.txt包含我之前处理过的.flat编译资源的列表。

错误

error: resource style/Theme.AppCompat.Light.DarkActionBar (aka com.example.doandominh.simpleaab:style/Theme.AppCompat.Light.DarkActionBar) not found.
I:\RnD\AAB\SimpleAAB\\app\src\main\res\values\styles.xml:6: error: style attribute 'attr/colorPrimary (aka com.example.doandominh.simpleaab:attr/colorPrimary)' not found.
I:\RnD\AAB\SimpleAAB\\app\src\main\res\values\styles.xml:7: error: style attribute 'attr/colorPrimaryDark (aka com.example.doandominh.simpleaab:attr/colorPrimaryDark)' not found.
I:\RnD\AAB\SimpleAAB\\app\src\main\res\values\styles.xml:8: error: style attribute 'attr/colorAccent (aka com.example.doandominh.simpleaab:attr/colorAccent)' not found.
error: failed linking references.

我认为这取决于'com.android.support:appcompat-v7:26.1.0'之类的东西,但是我不知道如何将它们添加到aapt2链接参数中。

有人以前遇到过这个问题吗?任何评论都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

tldr:您还需要编译AppCompat资源,因为您是手工构建所有这些资源,并传递它们以与本地资源相同的方式链接(顺序很重要,可以保持正确的覆盖/覆盖)。

Android Gradle插件在应用程序级别处理资源的方式是:

  • 合并所有资源(本地应用程序,本地库,远程库,额外的资源源集等)
  • 使用“ aapt2编译”(带有或不带有PNG压缩)来编译所有内容
  • 将所有内容链接到APK