如何创建构建文件来构建单声道android项目并生成myproject.apk文件。

时间:2012-03-16 12:39:15

标签: android msbuild monodevelop apk mdtool

我有一个单声道android项目。我可以使用monodevelop来构建我项目的apk。但是我想用可以生成.apk文件的目标编写一个构建文件(就像我们使用ANT一样)。

请指出正确的方向。

我已经发现我们需要使用mandroid.exe从.dll生成.apk。 日志显示有一个名为_Manddroid的目标,monodevelop的构建工具运行。该目标依次按照命令

运行
C:\Program Files\MSBuild\Novell\mandroid.exe -v --nosign --sdk-dir="C:\Android\android-sdk" --builddir="C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\obj\Debug\android" --framework-dir="C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2" --framework-dir="C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0" -S="C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\obj\Debug\res" --package="helloShikha.helloShikha"   --nolink --abi="armeabi" --java-sdk-dir="C:\Program Files\Java\jdk1.6.0_30" --debug --sdk-platform="8" "C:\Users\Sikha\Documents\Projects\helloShikha\helloShikha\bin\Debug\helloShikha.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2\Mono.Android.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\mscorlib.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Core.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.dll" "C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.dll"

当我尝试在cmd上复制粘贴上面的命令时没有任何反应。知道我在这里缺少什么吗?

2 个答案:

答案 0 :(得分:4)

我使用了以下命令,它为我生成了.apk文件。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe myproject.csproj /t:Package

我尝试使用.sln文件但收到错误:目标包在项目中不存在。 我打开了myproject.csproj文件并发现该文件导入Novell.MomoDroid.CSharp.Targets,后者又导入了Novell.MonoDroid.Common.Targets

目标“包”存在于Novell.MonoDroid.Common.Targets文件中。

答案 1 :(得分:1)

为什么要编写替代目标? Mono for Android项目文件是基于MSBuild的,MSBuild是微软相当于ant的。这意味着csproj文件已经完全可扩展和可自定义,并且可以使用命令行MSBuild工具构建:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe YourSolution.sln