Monodroid не будет развертываться при использовании ImageView

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, Конфигурация: Отладка Любой процессор ------ MonoAndroidApplication1 → C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.dll Версия движка Microsoft (R) 4.0.30319.1 [Microsoft.NET Framework, версия 4.0.30319.225] Copyright (C) Microsoft Corporation 2007. Все права защищены.

Сборка началась 8/06/2011 8:37:40 AM. Проект "C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj" на node 1 (TargetAppagePackage target (s)). _GenerateAndroidAssetsDir: Пропуск цели "_GenerateAndroidAssetsDir", поскольку он не имеет выходов. _ResolveMonoAndroidSdks: Поиск Android SDK..   Ключ HKCU\SOFTWARE\Android SDK Tools\Путь не найден.   Ключ HKLM\SOFTWARE\Android SDK Tools\Path found:     Путь содержит adb.exe в \platform- инструментах (C:\Program Files\Android\android- sdk). Поиск Java SDK..   Доступен ключ HKLM\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion: 1.6.   Key HKLM\SOFTWARE\JavaSoft\Java Development Kit\1.6\JavaHome найдено:     Путь содержит jarsigner.exe в \bin (C:\Program Files\Java\jdk1.6.0_25). MonoAndroid Tools: 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\v1.0 \ Android SDK: C:\Program Files\Android\android- sdk \ Java SDK: C:\Program Files\Java\jdk1.6.0_25 \ _ValidateAndroidPackageProperties: Задача GetAndroidPackageName   ManifestFile:   AssemblyName: MonoAndroidApplication1   Имя пакета: MonoAndroidApplication1.MonoAndroidApplication1 _UpdateAndroidResgen: Пропуск целевой "_UpdateAndroidResgen", потому что все выходные файлы имеют дату up- to- относительно входных файлов. GenerateTargetFrameworkMonikerAttribute: Пропуск цели "GenerateTargetFrameworkMonikerAttribute", потому что все выходные файлы имеют дату up- to- относительно входных файлов. CoreCompile: Пропуск целевой "CoreCompile", потому что все выходные файлы имеют дату up- to- относительно входных файлов. _CopyOutOfDateSourceItemsToOutputDirectoryAlways: Копирование файла из "C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\Resources\Drawable- land\Icon.png" в "bin\Debug\Resources\Drawable- land\Icon.png". CopyFilesToOutputDirectory: MonoAndroidApplication1 → C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\bin\Debug\MonoAndroidApplication1.dll ContractDeclarativeAssemblyCS: Пропуск цели "ContractDeclarativeAssemblyCS", потому что все выходные файлы имеют дату up- to- по отношению к входным файлам. _ConvertDebuggingFiles: Пропуск целевой "_ConvertDebuggingFiles", потому что все выходные файлы имеют дату up- to- относительно входных файлов. _CompileAndroidPackage: Задача Mandroid   Ассемблировки: 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   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:   Пакет: MonoAndroidApplication1.MonoAndroidApplication1   NativeLibrary:   JavaSource:   Отладка: True   UseSharedRuntime: True   ПоддерживаетсяАбис: 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 -S dk-dir = "C:\Program Files\Java\jdk1.6.0_25" --debug --sdk- platform = "8" -A= "C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\obj\Debug\assets" "C:\Разработка\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(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] в: 0   в Monodroid.Droidinator.CreateApk() [0x00000] в: 0   в Monodroid.MainClass.Main(System.String [] argv) [0x00000] в: 0 Done Building Project "C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj" (SignAndroidPackage target (s)) - FAILED.

Сборка FAILED.

"C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj" (цель SignAndroidPackage) (1) → (_CompileAndroidPackage target) → monodroid: error 1: System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта [C:\Development\MonoAndroidApplication1\MonoAndroidApplication1\MonoAndroidApplication1.csproj]

  • 0
    Можете ли вы выложить полный журнал из logcat
Теги:
xamarin.android

2 ответа

2

EDIT: Я нашел решение; просто убедитесь, что имя файла изображения находится в нижнем регистре. Мое изображение было названо Image.png, переименовав его в image.png, это сработало.


Достаточно легко воспроизвести - просто создайте новое решение с макетом с ImageView. Установите android:src="@drawable/Image". Если я набираю изображение с нижним регистром, изображение, оно дает ошибку компилятора, но когда я исправляю его на Image no compile time errors, но упаковка терпит неудачу... Изображение находится в правильной папке и установлено значение AnddroidResource.

Поэтому мне бы очень понравилась эта помощь.

Спасибо, Никлас

0

Убедитесь, что для Action для этого файла образа установлено значение AndroidResource. Вы можете установить действие сборки, щелкнув правой кнопкой мыши на файле в Visual Studio и выбрав "Свойства".

  • 0
    это уже @Greg.
  • 0
    Можете ли вы предоставить пример проекта с ошибкой? Трудно сказать, что происходит, не видя этого, но, судя по этому выводу, похоже, что изображение не включается в сборку. Я предполагаю, что он находится в правильной папке Drawable?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню