包装时Monodroid空指针

时间:2011-05-16 17:12:18

标签: packaging xamarin.android

Windows 7 x64 / VS 2010 Pro上的最新版MonoDroid。

简单示例效果很好,但在我的'真实'应用程序中,我在打包时会得到一个空指针(在尝试运行应用程序之后,或者从构建菜单中选择'package'选项。

相关输出如下:

C:\ Program Files(x86)\ MSBuild \ Novell \ mandroid.exe -v --nosign --sdk-dir =“C:\ Program Files(x86)\ Android \ android-sdk-windows” - builddir =“[LOCALPATH]客户端[NAMESPACE] .Android \ obj \ Debug \ android”--framework-dir =“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v2.2” - framework-dir =“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0”-S =“[LOCALPATH] Clients [NAMESPACE] .Android \ obj \ Debug \ res”--package =“[NAMESPACE]” - nolink --noshared --abi =“armeabi”--java-sdk-dir =“C:\ Program Files(x86)\ Java \ jdk1.6.0_24”--debug --manifest -template =“[LOCALPATH]客户端[NAMESPACE] .Android \ Properties \ AndroidManifest.xml”--sdk-platform =“8”“[LOCALPATH]客户端[NAMESPACE] .Android \ bin \ Debug [ASSEMBLY] .dll”“ C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v2.2 \ Mono.Android.dll“”C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ mscorlib.dll“”[LOCALPATH] Android \ Core [NAMESPACE] .Client.Android \ bin \ Debug [NAMESPACE] .Client.Android.dll“”[LOCALPATH] Android \ Core [NAMESPACE] .Core.Android \ bin \ Debug [NAMESPACE] .Core.Android.dll“”[LOCALPATH] Android [NAMESPACE] .Diagnostics.Android \ bin \ Debug [NAMESPACE] .Diagnostics.Android.dll“”[LOCALPATH] Android [NAMESPACE] .Logging.Android \ bin \ Debug [NAMESPACE] .Logging.Android.dll“”[LOCALPATH] Android \核心[NAMESPACE] .Services.Android \ bin \ Debug [NAMESPACE] .Services.Android.dll“”[LOCALPATH] Android \ Shared [NAMESPACE] .Utils.Android \ bin \ Debug [NAMESPACE] .Utils.Android.dll“ “C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.Core.dll”“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1。 0 \ System.dll“”C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v1.0 \ System.Xml.dll“”C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \框架\ MonoAndroid \ 1.0 \ System.Xml.Linq.dll” monodroid:错误1:System.NullReferenceException:对象引用未设置为对象的实例[[LOCALPATH]客户端[NAMESPACE] .Android [NAMESPACE] .Android.csproj]     在MonoDroid.Utils.ProcessRocks + c__Iterator5.MoveNext()[0x00000] in:0     在Monodroid.Toolbox.InvokeCommand(IEnumerable 1 commandLine) [0x00000] in <filename unknown>:0 at Monodroid.Toolbox.InvokeAapt (System.String packageName) [0x00000] in <filename unknown>:0 at Monodroid.Droidinator.CreatePackagedResources (System.Collections.Generic.List 1 javaTypes)[0x00000] in:0     在Monodroid.Droidinator.CreateApk()[0x00000]中:0     在Monodroid.MainClass.Main(System.String [] argv)[0x00000] in:0 完成建筑项目“[LOCALPATH]客户[NAMESPACE] .Android [NAMESPACE] .Android.csproj”(SignAndroidPackage target(s)) - FAILED。

构建失败。

“[LOCALPATH]客户端[NAMESPACE] .Android [NAMESPACE] .Android.csproj”(SignAndroidPackage目标)(1) - &gt; (_CompileAndroidPackage target) - &gt;   monodroid:错误1:System.NullReferenceException:对象引用未设置为对象的实例[[LOCALPATH]客户端[NAMESPACE] .Android [NAMESPACE] .Android.csproj]

由于一个简单的例子有效,它必须是我的项目中的东西,但我不知道从哪里开始寻找...有人有提示吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

通过创建一个新的Android应用程序并逐步添加项目直到我遇到问题来解决这个问题。

问题在于我的AndroidManifest.xml,其中包含以下内容:

<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />

最初该应用程序仅支持2.3及更高版本,但在某些时候我们将其回滚到2.2。这是否是引入问题的原因,我不知道。但是,通过删除以下问题即可解决:

android:largeScreens="true"

从那个标签。