2011-06-07 45 views
1

我在我的Main.axml;当使用ImageView时,Monodroid不会部署

<?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:\开发\ MonoAndroidApplication1 \ MonoAndroidApplication1 \ BIN \ Debug \ MonoAndroidApplication1.dll Microsoft(R)Build Engine版本4.0.30319.1 [Microsoft .NET Framework,版本4.0.30319.225] 版权所有(C)Microsoft Corporation 2007.保留所有权利。

开始建造8/06/2011 8:37:40 AM。 节点1(SignAndroidPackage目标)上的项目“C:\ Development \ MonoAndroidApplication1 \ MonoAndroidApplication1 \ MonoAndroidApplication1.csproj”。 _GenerateAndroidAssetsDir: 跳过目标“_GenerateAndroidAssetsDir”,因为它没有输出。 _ResolveMonoAndroidSdks: 正在寻找Android SDK .. 未找到钥匙HKCU \ SOFTWARE \ Android SDK Tools \ Path。 Key \ HKLM \ SOFTWARE \ Android SDK Tools \ Path found: 路径包含\ platform-tools(C:\ Program Files \ Android \ android-sdk)中的adb.exe。 寻找Java SDK .. Key HKLM \ SOFTWARE \ JavaSoft \ Java Development Kit \ CurrentVersion found:1.6。 Key HKLM \ SOFTWARE \ JavaSoft \ Java Development Kit \ 1.6 \ JavaHome found: Path在\ bin(C:\ Program Files \ Java \ jdk1.6.0_25)中包含jarsigner.exe。 MonoAndroid工具:C:\ Program Files \ MSBuild \ Novell \ MonoAndroid Framework:C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ v2.2 \; C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ MonoAndroid \ 1.0 \ Android SDK中:C:\ Program Files文件\的Android \ Android的SDK \ 的Java SDK:C:\ Program Files文件\的Java \ jdk1.6.0_25 \ _ValidateAndroidPackageProperties: GetAndroidPackageName任务 manifest资源配置文件: 程序集名称:MonoAndroidApplication1 程序包名称:MonoAndroidApplication1.MonoAndroidApplication1 _UpdateAndroidResgen: 跳过目标“_UpdateAndroidResgen”,因为所有输出文件相对于输入文件都是最新的。 GenerateTargetFrameworkMonikerAttribute: 跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件都是关于输入文件的最新版本。 CoreCompile: 跳过目标“CoreCompile”,因为所有输出文件都是关于输入文件的最新版本。 _CopyOutOfDateSourceItemsToOutputDirectoryAlways: 从“C:\ Development \ MonoAndroidApplication1 \ MonoAndroidApplication1 \ Resources \ Drawable-land \ Icon”复制文件。PNG “到 ”斌\调试\资源\可绘制土地\的icon.png“ CopyFilesToOutputDirectory: MonoAndroidApplication1 - > C:\开发\ MonoAndroidApplication1 \ MonoAndroidApplication1 \ BIN \调试\ MonoAndroidApplication1.dll ContractDeclarativeAssemblyCS: 跳过目标” ContractDeclarativeAssemblyCS “因为所有的输出文件都是最新的输入文件 _ConvertDebuggingFiles: 跳过目标”_ConvertDebuggingFiles“,因为所有输出文件相对于输入文件是最新的 _CompileAndroidPackage: Mandroid Task 程序集:C:\ Development \ MonoAndroidApplication1 \ MonoAndroidApplication1 \ bin \ Debug \ MonoAndroidApplication1.dll; C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ M onoAndroid \ 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:\开发\ MonoAndroidApplication1 \ MonoAndroidApplication1 \ OBJ \调试\资产\ AndroidSdkPlatform:8 MonoAndroidToolsDirectory:C:\ Program Files文件\的MSBuild \ Novell公司\ ResourceDirectory:C:\开发\ MonoAndroidApplication1 \ MonoAndroidApplication1 \ OBJ \调试\ \ RES ManifestTemplate: 包装:MonoAndroidApplication1.MonoAndroidApplication1 NativeLibrary: 的JavaSource: 调试:True UseSharedRuntime:True SupportedAbis:armeabi LinkMode:无 ExtraArgs:
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 \ Fr amework \ 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:error 1:System。 NullReferenceException:未将对象引用设置为对象的实例[Monoroid.Utils.ProcessRocks + C__Iterator5.MoveNext()[0x00000]中的 [MonoAndroidApplication1 \ MonoAndroidApplication1 \ .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:0Monodroid.MainClass中的Monodroid.Droidinator.CreateApk()[0x00000]中的:0,的。Main(System.String [] argv)[0x00000] in:0 完成构建项目“C:\ Development \ MonoAndroidApplication1 \ MonoAndroidApplication1 \ MonoAndroidApplication1.csproj”(SignAndroidPackage target(s)) - FAILED。

构建失败。

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

+0

你能从logcat的 – 2011-06-07 06:36:12

回答

0

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

+0

它已经是@格雷格发布完整的日志。 – griegs 2011-06-08 22:29:36

+0

你能提供一个带有错误的示例项目吗?很难说没有看到它会发生什么,但从输出来看,它看起来像图像没有被包含在构建中。我认为它位于适当的Drawable文件夹中? – 2011-06-09 02:57:09

+0

不可能包含该项目,但是您的权利,图像位于drawable-land文件夹中,并且它是唯一的可绘制文件夹。我也有一个相应的layout-land文件夹。 – griegs 2011-06-09 03:27:41

2

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


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

所以我确实也想在这一个帮助。

感谢,尼克拉斯