android - 如何从命令行构建android apk?

标签 android delphi msbuild

如何从命令行构建 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 文件,或者实际上只需选择 ProjectDeploy 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 目标将失败,例如之前使用 BuildMake 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/

相关文章:

c# - 由于缺少依赖项,MSBuild 清理操作失败

.net - 如何在 AfterBuild 中将 ILMerge 与 .NET 4.5 结合使用?

android - 在 Android 中使用 Google Maps API v2 添加图像

android - 弹出到全局操作的图形 startDestination fragment - Android 导航组件

delphi - 如何使用 VCL 类的接口(interface)?

delphi - delphi中最大化表单的正确方法(无标题)

.net - MSBuild 条件 IsDebug

android - 为什么在 Activity 之间切换时会调用 Activity.onUserInteraction()?

android - 使用 Android 版 Goodreads API

delphi - 打开 dBase 表