如何从命令行构建android apk?

lok*_*oki 5 delphi msbuild android

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

MSBuild myProject.dproj /p:Config=Release /p:Platform=Android 
Run Code Online (Sandbox Code Playgroud)

但没有生成APK文件,只有.so文件.

blo*_*ong 6

一些实验表明,各种拟议行动方案的以下方面发挥作用,以获得更完整的图景.

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

您可以使用如下命令行构建包含ARM机器代码的.so文件:

msbuild Foo.dproj /property:Config=Debug /property:Platform=Android /target:Build
Run Code Online (Sandbox Code Playgroud)

或者这个更简洁的版本:

msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build
Run Code Online (Sandbox Code Playgroud)

根据文档,您可以使用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
Run Code Online (Sandbox Code Playgroud)

部署如果所需的文件,如libFoo.so不存在目标会失败,通过以前使用的MSBuild运行说,建造制作的MSBuild目标:S(431,5):错误:所需的本地文件"的Android \调试\ libfoo的.所以"没找到.部署失败.

此外,如果您没有为项目生成Foo.deployproj文件,则Deploy目标将失败:错误MSB4057:项目中不存在目标"Deploy".

也就是说,如果你有Foo.deployproj,你可以一举建立和部署,例如:

msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build;Deploy
Run Code Online (Sandbox Code Playgroud)

当然为了避免编译没有改变的文件,这可能更好:

msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Make;Deploy
Run Code Online (Sandbox Code Playgroud)

文档没有提到任何有关Deploy目标的事实有点令人困惑.有可能认为它暗示你对Foo.deployproj文件运行MSBuild,但这并没有带来任何欢乐.文档似乎已过时或完全错误.