如何从命令行构建android apk?

时间:2016-09-23 11:37:18

标签: android delphi msbuild

如何从命令行构建APK文件?我试过了

MSBuild myProject.dproj /p:Config=Release /p:Platform=Android 

但不生成任何APK文件,只生成.so文件。

2 个答案:

答案 0 :(得分:6)

一些实验表明,各种拟议行动方案的以下几个方面都可以起到更全面的作用。

当您创建一个新的Delphi多目标项目(让我们称之为Foo)时,您创建了一个与MSBuild兼容的文件:Foo.dproj Delphi项目文件。对于Android(此问题中的平台),这足以构建目标libFoo.so库文件,该文件最终将成为已部署的.apk文件的一部分,但还不足以生成.apk文件。< / p>

您可以使用如下命令行构建包含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文件, Deploy 目标将失败:错误MSB4057:项目中不存在目标“Deploy”。

那就是说,如果你有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,但这并没有带来任何欢乐。文档似乎已过时或完全错误。

答案 1 :(得分:1)

我找到了:

 MSBuild Project1.dproj /p:Config=Debug /p:Platform=Android /t:Deploy