如何从命令行构建APK文件?我试过了
MSBuild myProject.dproj /p:Config=Release /p:Platform=Android
但不生成任何APK文件,只生成.so文件。
答案 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