android - Aapt添加图书馆资源

标签 android aapt

我正在尝试根据this manual手动构建apk(没有gradle) ,但我不明白如何将库与资源一起使用。我已经下载了Android支持库,解压了appcopmpat目录并在javac中指定了-classpath。我还尝试在 aapt 中指定资源的路径,但它报告名称冲突。我应该重命名应用程序的资源,还是有更好的解决方案?

这是命令($MANIFEST$ANDROID 只是路径):

aapt package -f -m -J app/src -M ${MANIFEST} -I ${ANDROID} -S appcompat/res app/res

错误消息:

app/res/values/strings.xml: error: Duplicate file.
appcompat/res/values/strings.xml: Original is here.

最佳答案

您可以使用--auto-add-overlay对于重复的资源,但问题是,很难找出正确的资源命令和使用。您还需要指定多个 -S外部支持库的res路径,包含在res里面.aar zip 文件。

此外,您还可以使用--extra-packages <package_name>在哪里替换 <package_name>任何包名称,例如com.foo.bla。这将创建一个额外的 R.java包的文件。您可以使用 android.jar 中提供的主题,而不是使用支持库(例如 AppCompatv7)。您将在 main Manifest.xml 中使用它,将主题指向 Styles.xml在值文件夹中。在这种情况下,您将能够使用“AAPT”工具,而无需任何支持库。

这里有一篇以最佳方式创建 APK 的文章:https://geosoft.no/development/android.html .

请参阅我对类似问题的回答,以使用 Android 的通用主题(在支持库中不可用),这样您就不必集成其他库:How to compile an Android app with aapt2 without using any build tools?

关于android - Aapt添加图书馆资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55433138/

相关文章:

android - 错误 aapt : Attribute "font" already defined with incompatible format. 此处定义的原始属性

java - 如何在Android中管理AndroidManifest xml

java - Android 使用自定义构造函数重新创建 fragment

android - 在 travis yml 文件上配置 gradle.properties android.enableAapt=false

android - 我的命令行 shell 不支持 aapt 命令

android - 如何解决AAPT错误

android - 在现有位图图像上绘制正方形

android - 错误 :Execution failed for task ':Application:transformClassesWithJarMergingForDebug'

android - 如何防止我的 android jni 调用中的代码停滞?

android - 从 apk 文件中获取图标