如何从命令行构建 APK 文件?我试过了
MSBuild myProject.dproj /p:Config=Release /p:Platform=Android
但没有生成 APK 文件,只有 .so 文件。
最佳答案
一些实验表明,为了获得更完整的画面,所提议的各种行动方案的以下方面开始发挥作用。
当您创建一个新的 Delphi 多目标项目(我们称之为 Foo)时,您会创建一个与 MSBuild 兼容的文件:Foo.dproj Delphi 项目文件。对于 Android(本问题中的平台),这足以构建目标 libFoo.so 库文件,该文件最终将成为部署的 .apk 文件的一部分,但还不足以生成 .apk 文件。
您可以使用如下命令行构建包含 ARM 机器代码的 .so 文件:
msbuild Foo.dproj /property:Config=Debug /property:Platform=Android /target:Build
或者这个更简洁的版本:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build
根据 the documentation您可以使用 Deployment Manager 的 Deploy 按钮创建一个额外的 MSBuild 文件,或者实际上只需选择 Project、Deploy libFoo.so 菜单项。此部署的初始步骤是创建一个 Foo.deployproj 文件,这是另一个与 MSBuild 兼容的文件。
在 Foo.deployproj 文件存在的情况下,以下行将获取 libFoo.so 文件和部署所需的任何其他内容,并使用它们来构建 .apk Android 应用程序包文件:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Deploy
如果所需的文件(例如 libFoo.so)不存在,Deploy 目标将失败,例如之前使用 Build 或 Make运行 MSBuild em> MSBuild 目标:s(431,5):错误:找不到所需的本地文件“Android\Debug\libFoo.so”。部署失败。
此外,如果您没有为您的项目生成 Foo.deployproj 文件,部署目标将失败:错误 MSB4057:项目中不存在目标“部署”。
就是说,如果您有 Foo.deployproj,您可以一口气构建和部署,例如:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build;Deploy
当然,为了避免编译未更改的文件,这可能更好:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Make;Deploy
文档没有提及任何关于 Deploy 目标的事实有点令人困惑。有可能认为这意味着您针对 Foo.deployproj 文件运行 MSBuild,但这不会产生任何乐趣。文档似乎已过时或完全错误。
关于android - 如何从命令行构建android apk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39659848/