1

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

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

相关输出如下所示:

C:\Program Files (x86)\MSBuild\Novell\mandroid.exe -v --nosign --sdk-dir="C:\Program Files (x86)\Android\android-sdk-windows" --builddir=" [LOCALPATH]Clients[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="[命名空间]" --nolink --noshared --abi="armeabi" --java-sdk-dir="C:\Program Files (x86)\Java\jdk1.6.0_24" --debug --manifest-template= "[LOCALPATH]Clients[NAMESPACE].Android\Properties\AndroidManifest.xml" --sdk-platform="8" "[LOCALPATH]Clients[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\Core[NAMESPACE].Services.Android\bin\Debug[NAMESPACE].Services.Android.dll" "[LOCALPATH]Android\Shared[命名空间].Utils.Android\bin\Debug[命名空间].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\Framework\MonoAndroid \v1.0\System.Xml.Linq.dll" monodroid:错误 1:System.NullReferenceException:对象引用未设置为对象的实例 [[LOCALPATH]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj]在 MonoDroid.Utils.ProcessRocks+c__Iterator5.MoveNext () [0x00000] 在:0 在 Monodroid.Toolbox.InvokeCommand (IEnumerable\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\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" monodroid:错误 1:System.NullReferenceException:对象引用未设置为实例对象 [[LOCALPATH]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj] 在 MonoDroid.Utils.ProcessRocks+c__Iterator5.MoveNext () [0x00000] 在:0 在 Monodroid.Toolbox.InvokeCommand (IEnumerable\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\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" monodroid:错误 1:System.NullReferenceException:对象引用未设置为实例对象 [[LOCALPATH]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj] 在 MonoDroid.Utils.ProcessRocks+c__Iterator5.MoveNext () [0x00000] 在:0 在 Monodroid.Toolbox.InvokeCommand (IEnumerable\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" monodroid : 错误 1: System.NullReferenceException: 对象引用未设置为对象的实例 [[LOCALPATH ]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj] 在 MonoDroid.Utils.ProcessRocks+c__Iterator5.MoveNext () [0x00000] 在:0 在 Monodroid.Toolbox.InvokeCommand (IEnumerable\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" monodroid : 错误 1: System.NullReferenceException: 对象引用未设置为对象的实例 [[LOCALPATH ]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj] 在 MonoDroid.Utils.ProcessRocks+c__Iterator5.MoveNext () [0x00000] 在:0 在 Monodroid.Toolbox.InvokeCommand (IEnumerable1 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.List1 javaTypes) [0x00000] 在:0 在 Monodroid.Droidinator.CreateApk () [0x00000] 在:0 在 Monodroid.MainClass.Main (System.String[] argv) [0x00000] 在:0 完成建设项目“[LOCALPATH] Clients[NAMESPACE].Android[NAMESPACE].Android.csproj"(SignAndroidPackage 目标)——失败。

构建失败。

“[LOCALPATH]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj”(SignAndroidPackage 目标)(1)->(_CompileAndroidPackage 目标)-> monodroid:错误 1:System.NullReferenceException:对象引用未设置为一个对象 [[LOCALPATH]Clients[NAMESPACE].Android[NAMESPACE].Android.csproj]

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

提前致谢

4

1 回答 1

1

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

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

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

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

android:largeScreens="true"

从那个标签。

于 2011-05-24T13:11:40.273 回答