1

我有这个Main.axml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent"
                android:layout_width="fill_parent"
    >

    <Button  
        android:id="@+id/MyButton"
        android:layout_width="200dp" 
        android:layout_height="wrap_content" 
        android:text="@string/Hello"/>

    <ImageView 
        android:src="@drawable/samplebackground"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/MyButton"/>

</RelativeLayout>

它构建良好,sampleBackground 是我的项目中包含的 jpg。

但是,当我尝试部署时出现错误;

Object reference not set to an instance of an object

并且有一堆行说明<filename unknown>

如果我从标记中删除 ImageView,则应用程序部署良好。

有什么想法吗?

全栈

------ 构建开始:项目:MonoAndroidApplication1,配置:调试任何 CPU ------ MonoAndroidApplication1 -> C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.dll Microsoft (R) Build Engine Version 4.0.30319.1 [Microsoft .NET Framework,版本 4.0.30319.225] 版权所有 (C) Microsoft Corporation 2007。保留所有权利。

构建于 2011 年 8 月 6 日上午 8:37:40 开始。节点 1 上的项目“C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj”(SignAndroidPackage 目标)。_GenerateAndroidAssetsDir:跳过目标“_GenerateAndroidAssetsDir”,因为它没有输出。_ResolveMonoAndroidSdks:正在寻找 Android SDK.. 未找到密钥 HKCU\SOFTWARE\Android SDK Tools\Path。找到密钥 HKLM\SOFTWARE\Android SDK Tools\Path:路径包含 \platform-tools (C:\Program Files\Android\android-sdk) 中的 adb.exe。寻找 Java SDK.. 找到密钥 HKLM\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion:1.6。找到密钥 HKLM\SOFTWARE\JavaSoft\Java Development Kit\1.6\JavaHome:路径包含 \bin 中的 jarsigner.exe (C:\Program Files\Java\jdk1.6.0_25)。MonoAndroid 工具:C:\Program Files\MSBuild\Novell\ MonoAndroid 框架:C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2\;C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\ Android SDK:C:\Program Files\Android\android-sdk\ Java SDK:C:\Program Files\Java\jdk1.6.0_25\ _ValidateAndroidPackageProperties:GetAndroidPackageName 任务清单文件:AssemblyName:MonoAndroidApplication1 PackageName:MonoAndroidApplication1.MonoAndroidApplication1 _UpdateAndroidResgen:跳过目标“ _UpdateAndroidResgen”,因为所有输出文件相对于输入文件都是最新的。GenerateTargetFrameworkMonikerAttribute:跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件相对于输入文件都是最新的。CoreCompile:跳过目标“ \开发\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.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;C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll I18nAssemblies: BuildDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\ ReferenceAssembliesDirectory: C: \Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v2.2\;C:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\;; AndroidSdkDirectory: C:\Program Files\Android\android-sdk\ JavaSdkDirectory: C:\Program Files\Java\jdk1.6.0_25\ AssetDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\assets\ AndroidSdkPlatform: 8 MonoAndroidToolsDirectory : C:\Program Files\MSBuild\Novell\ ResourceDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\res\ ManifestTemplate: Package: MonoAndroidApplication1.MonoAndroidApplication1 NativeLibrary: JavaSource: Debug: True UseSharedRuntime: True SupportedAbis: armeabi LinkMode:无额外参数:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\;; AndroidSdkDirectory: C:\Program Files\Android\android-sdk\ JavaSdkDirectory: C:\Program Files\Java\jdk1.6.0_25\ AssetDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\assets\ AndroidSdkPlatform: 8 MonoAndroidToolsDirectory : C:\Program Files\MSBuild\Novell\ ResourceDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\res\ ManifestTemplate: Package: MonoAndroidApplication1.MonoAndroidApplication1 NativeLibrary: JavaSource: Debug: True UseSharedRuntime: True SupportedAbis: armeabi LinkMode:无额外参数:\Program Files\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\;; AndroidSdkDirectory: C:\Program Files\Android\android-sdk\ JavaSdkDirectory: C:\Program Files\Java\jdk1.6.0_25\ AssetDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\assets\ AndroidSdkPlatform: 8 MonoAndroidToolsDirectory : C:\Program Files\MSBuild\Novell\ ResourceDirectory: C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\res\ ManifestTemplate: Package: MonoAndroidApplication1.MonoAndroidApplication1 NativeLibrary: JavaSource: Debug: True UseSharedRuntime: True SupportedAbis: armeabi LinkMode:无额外参数:
C:\Program Files\MSBuild\Novell\mandroid.exe -v --nosign --sdk-dir="C:\Program Files\Android\android-sdk" --builddir="C:\Development\MonoAndroidApplication1\MonoAndroidApplication1 \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:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\res" --package="MonoAndroidApplication1.MonoAndroidApplication1" --nolink --abi="armeabi" --java -sdk-dir="C:\Program Files\Java\jdk1.6.0_25" --debug --sdk-platform="8" -A="C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\assets" “C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.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" "C:\Program Files\Reference Assemblies \Microsoft\Framework\MonoAndroid\v1.0\System.Xml.Linq.dll" monodroid:错误 1:System.NullReferenceException:对象引用未设置为对象的实例 [C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.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 完成建设项目“C:\ Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj”(SignAndroidPackage 目标)——失败。

构建失败。

“C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj”(SignAndroidPackage 目标)(1)->(_CompileAndroidPackage 目标)-> monodroid:错误 1:System.NullReferenceException:对象引用未设置为对象的实例 [C :\开发\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj]

4

2 回答 2

2

编辑:我找到了解决方案;只要确保图像文件名是小写的。 我的图像通过将其重命名为 image.png 来命名为 Image.png 。


它很容易重现 - 只需创建一个带有 ImageView 布局的新解决方案。设置android:src="@drawable/Image". 如果我输入小写的图像,图像,它会给出一个编译器错误,但是当我将它更正为图像时没有编译时错误,但打包失败......图像位于正确的文件夹中并设置为 AndroidResource。

因此,我确实也希望对此有所帮助。

谢谢,尼克拉斯

于 2011-10-23T18:22:06.330 回答
0

确保该图像文件的构建操作设置为 AndroidResource。您可以通过右键单击 Visual Studio 中的文件并选择属性来设置构建操作。

于 2011-06-08T17:40:52.473 回答