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]
由于一个简单的例子有效,它必须是我的项目中的东西,但我不知道从哪里开始寻找...有人有提示吗?
提前致谢
答案 0 :(得分:1)
通过创建一个新的Android应用程序并逐步添加项目直到我遇到问题来解决这个问题。
问题在于我的AndroidManifest.xml,其中包含以下内容:
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" />
最初该应用程序仅支持2.3及更高版本,但在某些时候我们将其回滚到2.2。这是否是引入问题的原因,我不知道。但是,通过删除以下问题即可解决:
android:largeScreens="true"
从那个标签。