当前位置: 首页 > 知识库问答 >
问题:

如何用AAPT2构建可运行的apk?

谢夜洛
2023-03-14

我有一个简单的android项目。这个命令编译资源并构建apk而不需要dex:

aapt2 compile project/res/values/strings.xml project/res/layout/activity_main.xml -o project/compiled_res

aapt2 link -o project/apk/unsigned_app.apk -I sdk/platforms/android-28/android.jar --manifest project/src/AndroidManifest.xml -R project/compiled_res/*.flat --java project/src --auto-add-overlay

文档报价:

但是,生成的APK不包含DEX字节码,并且是未签名的
...
您可以使用其他命令行工具,例如d8将Java字节码编译成DEX字节码,apksigner对您的APK进行签名。

d8 project/compiled_classes/com/illuzor/buildtest/*.class --output project/dex

zip -uj project/apk/unsigned_app.apk project/dex/classes.dex

共有1个答案

赵涵亮
2023-03-14

我也在找一个合适的方法。但即使现在是2019年,我也没有运气,我到处找了好几天。

我猜aapt add会完成这项工作,但您使用zip的解决方案还不错。

希望AAPT不会很快被弃用,或者AAPT2应该在此之前得到增强。

 类似资料:
  • gradle脚本最简单的Kotlin hello world for: 为了简洁起见,请参考项目本身,它实际上只包含构建文件和一个kotlin脚本。 如何使用 gradle 脚本 Kotlin 构建文件构建可运行的 ShadowJar?

  • 我是JavaFX新手。我使用Maven创建了一个Hello World项目。当我在Eclipse中运行时,它工作得很好。 当我试图使用build.fxbuild构建应用程序时,我得到了这个错误。

  • 我正在使用Jenkins构建我的android应用程序。当我试图构建任务“Assemble”时,有一个问题。 我已经添加了,但仍然有这个问题。 错误:

  • 问题内容: 我对Maven的口头禅还比较陌生,但是我正在尝试使用Maven构建命令行可运行jar。我已经设置了依赖项,但是当我运行并尝试运行jar时,会发生两件事。首先,没有找到可纠正的主类。更正此错误后,在运行时出现错误,指出找不到类。 Maven没有将我的依赖库打包在jar中,因此我无法将jar作为独立应用程序运行。我该如何纠正? 问题答案: 最简单的方法是使用和预定义描述符创建一个程序集。您

  • 如何建立角度 在使用TypeScript编写Angular应用程序后,我们使用Angular CLI命令构建应用程序。 命令将应用程序编译到一个输出目录中,构建构件将存储在目录中。 这篇文章说Angular有两个编译器: > 视图编译器 模块编译器 > 当使用类(在main.ts中)进行引导时,Angular在中查找,找到它,实例化AppComponent的实例,并在标记中呈现它。 当用户在应用程

  • 问题内容: 我已经成功构建了使用本机(JNI)库的Android应用(GUI)。 但是,现在我想创建一个从命令行运行的可执行文件(root特权),并且根本不使用GUI。我该如何构建类似的东西? 问题答案: 从NDK r8d开始,这可以通过更简单的方式解决。 创建具有以下目录层次结构的项目: 使用以下内容填写Android.mk。最重要的是最后一行。检查NDK文档中其他变量的含义。 转到目录,然后键