Не удалось загрузить изображение, на которое ссылается перо в пакете, запущенном на устройстве
SplitView[1290:307] Could not load the "canary04.png" image referenced from a nib in the bundle with identifier "xx.co.mycompany.ipad.SplitView"
Я получаю ошибку только при запуске на устройстве. Нет никаких проблем с запуском в симуляторе.
Я использую изображение непосредственно в interface builder с UIImageView.
EDIT: я добавил другое новое изображение в другой наконечник, и это не работает никаких проблем.
У кого-нибудь есть идеи?
30 ответов:
файловая система на устройствах iOS чувствительна к регистру, поэтому это вполне возможно проблема случая. (Mac OS X, как правило, чувствителен к регистру, поэтому вы не видели эту проблему в симуляторе.)
таким образом, убедитесь, что вы используете тот же случай в коде, что и само имя файла.
Он не может быть добавлен в вашу цель, и в XCode 4 Вы можете сделать это следующим образом:
- в представлении проекта щелкните имя проекта
- Выберите свою цель и выберите вкладку "этапы сборки"
- перетащите файл изображения в раздел "копировать ресурсы пакета"
это исправило это для меня.
есть ли у вас изображение в указанной папке в XCode (синяя папка)? Если это так, вы должны включить имя папки в путь к изображению, что-то вроде "Images/canary04.png"
легкий путь
1 просто сделать в командной оболочке, чтобы найти строку ссылочного изображения:
grep -R 'canary04.png' YourMainDirectoryFolder/*
2 это даст вам (например) такой вывод:
YourProject/en.lproj/YourViewController.xib: <textField borderStyle="roundedRect" background="canary04.png" id="19">3 теперь вы знаете, какой файл nib и какой элемент это. Просто зайдите в файл и удалите ссылку.
- удалите синюю папку, в которой находится изображение.
- импорт и выберите "Копировать элементы, если это необходимо".
- выберите "Создать группы", а не папки
вы можете сделать это, чтобы проверить его с вашего раскадровки, или перо. Откройте его как исходный код:
затем "найдите" имя изображения в нем, посмотрите, существует ли оно, но уже недействительно в вашем проекте, вероятно, вы удалили или изменили его имя, и теперь оно не кажется действительным.
вы включили файл в цель? Щелкните правой кнопкой мыши на вашей цели в Xcode, выберите получить информацию и выберите группу "цели" в верхней части. Убедитесь, что ваши целевые объекты проверены.
Удачи.
EDIT: Текст выше должен был прочитать щелкните правой кнопкой мыши file (canary04.png) в Xcocde и выберите получить информацию...
извините за опечатку.
У меня была эта проблема, когда я обновился до Xcode 4.4.1. Я обнаружил, что, хотя я удалил изображения (и соответствующие кнопки и т. д.) в раскадровках все еще было упоминание о них в моих файлах раскадровки (в поле tabBarItems). Я вручную прокомментировал их (), Product -> Clean, и я больше не получал ошибок.
Я знал, что в раскадровке должны быть фиктивные ссылки, поскольку я ранее удалил свою панель вкладок, и текущее приложение работало без проблем, просто с раздражающими сообщениями в консоли.
в моем случае это было потому, что Photoshop не сохранял мои файлы правильно. В диалоговом окне сохранения файла я нажимал на myfile.png в попытке перезаписать этот файл, и он сохранял файл с расширением png, но в формате photoshop.
Я должен был убедиться, что на самом деле изменить формат файла в PNG, прежде чем нажать на файл, который я хотел перезаписать, тем самым сохраняя в фактическом файле png, таким образом, читаемый iOS. Интересно, что interface builder показал мои psd-as-png файлы только штраф.
более обобщенно, убедитесь, что ваш файл, на самом деле, в формате, который вы думаете, что это и что iOS поэтому ожидает.
Решение 1 :
в моем случае я скопировал папку с изображениями и даже проверено "назначение: копировать элементы, если это необходимо". Однако он не был добавлен в "Copy Bundle Resources" из "Build Phases".
вы можете добавить изображения следующим образом:
- выберите цели
- выберите "Построить Фаз" tab
- выберите "Копировать Пакет Ресурсы"
- нажать на кнопку "+" (плюс) кнопка прямо под ним
- найдите изображения и добавьте его
решение 2 :
удалить изображения выбрав "переместить в трэш". Опять добавить изображения в вашем проекте с "Destination : copy items if needed" проверено.
Note : Make sure that you add images in Assets.xcassets folder and not outside it.
Я тоже получал эту ошибку. Я опишу свой сценарий:
У меня есть подкаталог "img", в котором есть некоторые png.
Одним из таких png является "ic_timeprogress_000.png"в раскадровке (визуальный дизайнер) у меня был imageView и изображение было установлено на "ic_timeprogress_000.ПНГ" (не программно). Дизайнер показал imageView правильно:
хотя при запуске приложения, ошибка была заброшенный.
Так что в раскадровке я изменил (я настаиваю: не программно) от "ic_timeprogress_000.png " to " img / ic_timeprogress_000.png", которые приводят к неправильному отображению изображения в конструкторе, но правильно отображаются при запуске (без ошибок)
хотя я изменю
imageView.imageпрограммно, так что это "исходное изображение" никогда не используется.
моя проблема была в том, что я сохранил изображение .jpg и изменил имя на .png (все еще был в формате jpg). Он работал с симулятором
Проверьте свое имя изображения. Если Он содержит некоторые пробелы, то изображение будет отображаться во время работы в симуляторе, но не в устройстве. во время работы он проверяет с учетом регистра имя и т. д.
У меня была другая проблема в iOS 8. В моем случае проблема заключалась в том, что я выбрал устройство, специфичное для набора изображений, а затем выбрал iPad. Изменение этого обратно на универсальный Исправлена проблема.
этот параметр можно найти в изображениях.xcassets файл, в третьем столбце показать инспектор атрибутов для набора изображений.
в этом случае изображения не будут отображаться в раскадровке или файле NIB, даже если вы добавили их к изображениям.xcassets. Они также не будут показывать в тренажере или устройстве.
я столкнулся с этой проблемой, когда я пытался установить изображение imageView на Interface Builder (.файл xib).
(я использовал ресурсы изображения)
у меня было 2 изображения с
theImage.jpegи[email protected]Interface Builder может отображать истинные изображения во время компиляции с помощью этихjpg / jpegформаты. Но у меня есть эта ошибка во время выполнения:Could not load the "theImage" image referenced from a nib in the bundle with identifier "org.etc.etc"затем я изменил форматы файлов изображений на
.pngи это сработало!попробуйте это решение тоже если у вас есть разные форматы для изображений, которые вы пытаетесь установить.
Я также столкнулся с проблемой, что файлы jpeg не могут быть загружены успешно, однако я решил ее, не меняя их на формат png: например, если у вас есть изображение с именем " bg.jpg", не используйте "bg" в раскадровке (это имя указано в выпадающем списке выбора), вместо этого вы должны явно написать " bg.jpg" в поле "Имя".
для программирования на основе представления изображения, я думаю, с помощью .расширением jpg, как
[UIImage imageNamed:@"xx.jpg"]также должно работать (I не проверял, хотя).
попробуйте очистить проект и убедитесь, что информация.plist в матчах ХХ.ко.название_компании.для iPad.SplitView
Проверьте имя изображения. Затем проверьте, можете ли вы открыть само изображение в paint или photoshop. Если изображение было создано в photoshop и там были слои, иногда возникает какой-то конфликт с ними .png
У меня была та же проблема, если ваши изображения находятся внутри подпапок, вам нужно выбрать опцию "Создать группы для подпапок" при копировании ресурсов.
У меня есть эта проблема с Xcode 5, и кажется, что виновником является "комбинированное изображение с высоким разрешением". Я открыл пакет приложений, и все изображения были *.tiff, который вызвал изображение "не найден": S
исправить:
Откройте настройки проекта и найдите в верхней части "объединить". Измените этот параметр на нет.
по какой-то причине всем не хватает этого существенного исправления.
в моем случае все изображения, где отображение нормально на устройствах с > iOS 7, но не с iOS 6.1. Решение было в том, что iOS7 чувствителен к регистру, но iOS 6.1 не для меня. У меня были изображения с именем "myImageName", а также с именем "myimagename" ведьма приводит мой старый iPhone 3 к невозможности отображения этих изображений.
Так что переименование их решило проблему.
пробовал каждый ответ здесь и ничего, так что вот еще один глюк, ваше имя значка не может иметь точек (.) потому что если это так (и Xcode позволяет вам это делать!) хотя значки хорошо отображаются в раскадровке, они не будут загружаться ни в симуляторе, ни в устройстве.
2015-все еще есть эта проблема. Я ссылался на изображение, которое больше не существовало в одной из кнопок с вкладками.
устранение: Просто осмотрите все ваши кнопки, объектами UIImage и т. д. и убедитесь, что изображение, которое вы ссылаетесь, действительно существует в вашем проекте.
Я получил эту проблему, когда я случайно добавил другой набор изображений в файл каталога активов. Я переименовал его после того, как понял ошибку, но это, похоже, не работает.
удаление файла и добавление его снова решает проблему.
то, что сработало для меня, - это убедиться, что владелец файла в interface builder имеет выход "view".
из IB выберите владельца файла из "заполнителей", затем в" Инспекторе соединений " убедитесь, что выход представления подключен к основному виду текущего XIB.
Это произошло потому, что я удалил основной вид в какой-то момент и забыл подключить Мой новый вид.
надеюсь, что это поможет кому-то еще.
в моем случае, проблема была в формате изображения. Это были файлы "jpg", в то время как Xcode ожидал файлы "png". Изменение формата файла Исправлена проблема.






Comments