Как собрать работающий apk с aapt2? - PullRequest
0 голосов
/ 06 октября 2018

У меня простой андроид проект .Эта команда компилирует ресурсы и создает 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 и являетсяunsigned
...
Вы можете использовать другие инструменты командной строки, такие как d8, для компиляции байт-кода Java в байт-код DEX и apksigner для подписи вашего APK.

Ok.Я могу:

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

Но как упаковать этот dex в apk?aapt2 не может распознать classes.dex:

enter image description here

Я могу просто добавить classes.dex в мой apk, выполнив zip:

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

И работает после выравнивания и подписи.Но должен быть другой путь, более правильный.

1 Ответ

0 голосов
/ 04 мая 2019

Я тоже ищу правильный путь.Но мне не повезло, даже сейчас 2019 год, и я искал повсюду, в течение нескольких дней.

Я думаю, aapt add выполнит работу, но ваше решение с zip неплохо.

Надеюсь, aapt не скоро будет устаревшим, или aapt2 должен быть улучшен до того, как это произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...