Apk был скомпилирован вручную, но aapt сообщил об ошибке

Я вручную компилирую apk. Но есть ошибка в упаковке при использовании aapt.

Создайте простой проект в Android Studio. Затем используйте aapt для упаковки его ресурсов. Команда показана ниже:

aapt package -f -m -J build -S res -M AndroidManifest.xml 
-I /SDK/platforms/android-28/android.jar

Вывод ошибки следующий:

error: resource style/Theme.AppCompat.Light.NoActionBar (aka com.jz.myapplication:style/Theme.AppCompat.Light.NoActionBar) not found.
./res/values/styles.xml:6: error: style attribute 'attr/colorPrimary (aka com.jz.myapplication:attr/colorPrimary)' not found.
./res/values/styles.xml:7: error: style attribute 'attr/colorPrimaryDark (aka com.jz.myapplication:attr/colorPrimaryDark)' not found.
./res/values/styles.xml:8: error: style attribute 'attr/colorAccent (aka com.jz.myapplication:attr/colorAccent)' not found.
error: failed linking references.

person 范明毅    schedule 06.04.2019    source источник


Ответы (1)


Вам не хватает ресурсов из библиотеки совместимости приложений.

Если вы собираетесь использовать ресурсы из некоторых библиотек, вам необходимо включить все ресурсы из этих библиотек и их транзитивные зависимости, используя флаг -S. Вы также должны помнить о порядке этих входных данных, поскольку они будут влиять на переопределение ресурсов во время выполнения.

Если вместо этого вы используете плагин Android Gradle, все это будет сделано автоматически.

person Izabela Orlowska    schedule 08.04.2019
comment
Изабела поняла это правильно. В дополнение к этому, поскольку использование библиотек поддержки в качестве зависимости сложно выполнить вручную, вы можете обратиться к этому моему ответу ‹stackoverflow.com /questions/54274657/›, в котором описывается, как мы можем использовать общую тему android.jar. Благодаря этому вы будете независимы от какой-либо библиотеки поддержки и сможете компилировать и создавать файлы dex и далее в apk. Убедитесь, что вы подписали свой apk для запуска на устройстве Android. - person Rupesh Kumar; 22.07.2019