Aapt 添加库资源



我正在尝试根据本手册手动构建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用于重复的资源,但问题是,很难找出正确的资源命令并使用。您还需要为外部支持库指定多个-Sres 路径,这些路径包含在 zip 文件内的 res.aar

此外,您可以使用--extra-packages <package_name><package_name>替换为任何软件包名称,例如.com.foo.bla。这将创建包的附加R.java文件。您可以使用android.jar中可用的主题,而不是使用支持库(例如 AppCompatv7),您将在主Manifest.xml中使用,将主题指向 values 文件夹中的Styles.xml。在这种情况下,您将能够在没有任何支持库的情况下使用"AAPT"工具。

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

请参阅我对使用android的一般主题(在支持库中不可用)的类似问题的回答,这样您就不必集成其他库:如何在不使用任何构建工具的情况下使用aapt2编译Android应用程序?

可以使用以下命令:

aapt package -f -m -J app/src -M ${MANIFEST} -I ${ANDROID} -S app/res -S appcompat/res  --extra-packages android.support.v7.app --auto-add-overlay

appcompat/res 之前的 -S 选项启用编译 app/res 文件夹所需的代码。 --自动添加-叠加使支持库资源可以覆盖在主应用程序的上方。 --额外的包选项,用于为 appcompat 启用 R.java,以便 appcompat 正常工作。

可以在此处找到工作脚本 https://github.com/HemanthJabalpuri/AndroidExplorer

相关内容

  • 没有找到相关文章

最新更新