我有一个简单的Android project。 此命令编译资源并构建没有dex的apk:
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
但是如何将dex打包为apk? aapt2无法识别classes.dex:
我可以通过压缩将classes.dex添加到我的apk:
zip -uj project/apk/unsigned_app.apk project/dex/classes.dex
并且它在对齐和签名后可以工作。但是必须是另一种方式,更合适。
答案 0 :(得分:0)
我也在寻找合适的方法。但是,即使现在是2019年,我也没有运气,我到处搜索了几天。
我想aapt add
可以完成工作,但是您使用zip
的解决方案还不错。
希望aapt
不会很快被弃用,否则aapt2
应该得到增强。