有人告诉我,有一种方法可以使用aapt的--version-code
选项将版本代码添加/插入到清单中没有定义版本代码的APK中。然而,我没有发现任何人这样做的例子(除了https://groups.google.com/forum/#!msg/adt dev/XjehZDzfXhk/g2sWBC37_I4J,它链接到一个死页面,甚至不是我试图做的同一件事)如果确实有可能的话。
当前在有问题的apk上运行的aapt d badging example.apk
返回类似的内容
package:name='com.example.core'版本代码=''版本名称='0.0.0'sdK版本:'8'
在我的清单中,我目前将versionName定义为xml文件中的一个字符串,因此我可以使用类似android:versionName="@string/app_version_name"
的东西(在清单标记中)将其拉入。然而,如果我在版本代码中尝试这样做,它似乎不想解析引用。它试图将版本代码设置为我输入的路径,但由于不是整数而失败。
我尝试过做一些类似aapt p --version-code 100 example.apk
的事情,但它似乎想打包整个项目,并希望有一个文件目录作为输入,而不是一个apk文件。(我认为这是aapt p[ackage]
的默认行为)
在使用aapt工具构建APK后,是否可以设置其版本代码?如果是,正确的语法是什么?
此解决方案不会直接使用aapt,但会在幕后使用。
您可以使用Android APKTool打开您的APK,更改 AndroidManifest.xml
文件,添加版本信息;然后再次使用APKTool进行重新打包。该工具是开源的,使用aapt。因此,您可以查看它的代码,了解如何直接使用aapt进行操作。