Android Aapt添加库资源
我正在尝试根据手动构建apk(没有gradle),但我不知道如何使用资源库。我已经下载了Android支持库,解压缩了Android Aapt添加库资源,android,aapt,Android,Aapt,我正在尝试根据手动构建apk(没有gradle),但我不知道如何使用资源库。我已经下载了Android支持库,解压缩了appcopmpat目录,并在javac中指定了-classpath。我还试图在aapt中指定资源的路径,但它报告名称冲突。我应该重命名我的应用程序的资源,还是有更好的解决方案 下面是命令($MANIFEST和$ANDROID只是路径): 以及错误消息: app/res/values/strings.xml: error: Duplicate file. appcompat/re
appcopmpat
目录,并在javac
中指定了-classpath
。我还试图在aapt
中指定资源的路径,但它报告名称冲突。我应该重命名我的应用程序的资源,还是有更好的解决方案
下面是命令($MANIFEST
和$ANDROID
只是路径):
以及错误消息:
app/res/values/strings.xml: error: Duplicate file.
appcompat/res/values/strings.xml: Original is here.
您可以对重复的资源使用--auto add overlay
,但问题是,很难找出正确的资源命令和使用方法。您还需要为外部支持库指定多个-S
res路径,这些路径包含在.aar
zip文件中的res中
此外,您还可以使用--extra packages
,将
替换为任何包名,例如com.foo.bla。这将创建包的附加R.java
文件。您可以使用android.jar
中提供的主题,而不是使用支持库(例如AppCompatv7),您将在mainManifest.xml
中使用该主题,将主题指向values文件夹中的style.xml
。在这种情况下,您将能够在没有任何支持库的情况下使用“AAPT”工具
下面是一篇以最佳方式创建APK的文章:
请参阅我对类似问题的回答,以使用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正常工作
可以在这里找到工作脚本
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