【问题标题】:How to build android apk from command line?如何从命令行构建android apk?
【发布时间】:2016-09-23 11:37:18
【问题描述】:

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

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

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

【问题讨论】:

  • 我发现那些反对票相当令人失望。这对我来说是一个完全合理的问题;文件未能正确告知的一项。事实上,到目前为止已经尝试过的和取得的结果都包括在内......
  • @blong 投票对我来说似乎很好。提问者的答案只是代码,质量相当低。你的回答非常好。我不明白提问者的回答是如何获得赞成票的。这才是真正的神秘和耻辱。质量才是最重要的。
  • 嗯,在它恢复到 0 之前,问题一直是 -2,这似乎特别没有根据。所以我和其他人一样将它推回到 0。我不是指反对任何答案的投票。
  • @David:一本好书不是书的重量!
  • 确实如此。质量才是最重要的。

标签: android delphi msbuild


【解决方案1】:

一些实验表明,各种建议的行动方案的以下方面可以发挥更全面的作用。

当您创建一个新的 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,您可以使用部署管理器的部署按钮来创建一个额外的 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 em> MSBuild 目标:s(431,5):错误:找不到所需的本地文件“Android\Debug\libFoo.so”。部署失败

此外,如果您没有为您的项目生成 Foo.deployproj 文件,Deploy 目标也会失败:错误 MSB4057:项目中不存在目标“Deploy”。 em>

也就是说,如果您有 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,但这不会带来任何乐趣。文档似乎已过时或完全错误。

【讨论】:

  • ^#{@#{^ starckoverflow 禁止我这样做 :( 看起来有人在我的答案上加上了-1(我在你的答案之前写了它)现在我被禁止使用 stackoverflow,我只能评论:(
  • 我不明白为什么人们在我的问题上加上-1,在我的回答上加上-1,导致我现在被列入stackoverflow的黑名单。这个问题很有用,有很好的标记/关键字,这样有同样问题的人可以很容易地找到它,问题指向文档中的一个错误......只是说没关系
  • @lok​​i 看起来你的 -ve 号码已经消失了。这能解决您的 Stackoverflow 问题吗?
  • @blong,是的,现在解决了 :) 谢谢!我成功接受了你的回答:)再次感谢:)
【解决方案2】:

我找到了:

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

【讨论】:

  • 这真的回答了您提出的问题吗?您能否为将来的读者解释一下为什么这样做?
  • 不起作用,我在这里收到“无目标”错误。所以对于“你的”项目来说,这似乎是一个相当具体的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
相关资源
最近更新 更多