Android: не вдалося перетворити @ dravable / малюнок у графічний


112

У моїй папці, що малюється, у мене є декілька зображень, і всі вони посилаються ідеально, але коли я намагаюся додати в ту саму папку більше зображень із таким самим розміром і намагаюся посилатися на них, з'являється помилка "Не вдалося конвертувати @ рисувальний / малюнок у малювальний " . Я спробував одне і те ж зображення з іншим ім'ям, і воно просто продовжує робити мені цю помилку. Я також спробував це в іншому макеті XML і те саме. Крім того, назва зображення було "jack", "abc", "question_mark", як ви бачите там, суворо в правилах того, які символи ви можете використовувати, і все ще повідомлення про помилку продовжує надходити. Будь-яка порада буде чудовою щодо вирішення проблеми, дякую.

Не вдалося перетворити @ Dravable / зображення в графічний


2
Усе відсортовано з якоїсь дивної причини, раптом після ще декількох клацань навколо нього працює! моя порада, якщо у вас виникає ця проблема, це просто перезапустити затемнення і переконатися, що на кожну річ посилається і називається правильно.
Джек Троубрідж

2
Іноді просто перебудова проекту з нуля допомагає позбутися цих проблем з SDK для Android. Я бачив дивні випадки, коли він використовував неправильні зображення для всіх моїх малюнків (без помилок, але використання зображення поруч із правильним для кожного малюваного), ймовірно, проблема з ідентифікатором посилання.
Гійом

знову -1 Android, +1 Windows
mihai71

4
Для мене це було знаком "-" посеред імені файлу. Після перейменування в Android Studio все пішло нормально.
martin.p

Відповіді:


200

Перезапустіть Eclipse (на жаль) і проблема піде.


Закриття та повторне відкриття проекту в Eclipse працювало для мене. Дякую Алію!
stephen.hanson

Я мав цю проблему з dravable-normal-hdpi, але коли з моїми зображеннями в dravable-hdpi - все в порядку.
Яр

@DoctororDrive - можливо, ваша проблема була дещо іншою. у вас ще є помилка?
Андролія

4
досить смішно, що ця проблема існує і в студії затемнення, і в андроїд
Mohammad AbuShady

3
Проект закриття / повторного відкриття для мене не працював, але вийти / перезапустити андроїд-студію все-таки спрацювало. дякую тобі Алія.
tmr

143

Також перевірте, чи містить ім'я ресурсу незаконні символи (для мене це було "-" у моєму зображенні)


Власний пакет іконок Android містить імена файлів, як 10-device-access-alarms.png, що Eclipse задихається! Дякую.
Номенон

12
Android студія також задавлюється цими іменами. Перейменування на підкреслення зафіксувало це для мене.
Cypress Frankenfeld

Для мене це був космічний символ ""!
Ефреето

космос був винуватцем у моєму випадку
Саджу

це було "-" і для мене, як не дивно, андроїд-студія червоним не позначила цю річ ...
Haseeb Zulfiqar

55

Якщо повторний запуск Eclipse не усуває проблему, переконайтеся, що назва зображення починається з символу альфа (нечислового).


4
Дякую. Android створить змінну id, що виводиться, у файлі R із назвою, що виводиться. Наприклад, якщо файл починається з числа, змінна почнеться з числа, а це не заборонено на мові Java.
momo

9
Також переконайтесь, що він не містить тире (-); наприклад, "mic-back" недійсний, "mic_back" нормально
Markus

Це була моя проблема. Усі піктограми в упаковці на веб-сайті Android мають провідні цифри.
theblang

Це повинно бути png? Я намагаюся використовувати jpg.
ІгорГанапольський

28

file nameповинен містити лише abc...xyz 012...789 _ . в папці Ресурси.

для:

my-image.png єFalse !
MyImage.png єFalse !
my image.png єFalse !
...
...

my-xml.xml єFalse !
MyXml.xml єFalse !
мій xml.xml єFalse !
...
...


25

Це тому, що ваше ім'я зображення містить символ "-". єдині дозволені символи є [a-zA-Z0-9_.]

Дякую


1
Великі літери недійсні. Якщо ви користуєтесь ними, Android Studio видасть цю помилку: Помилка: Не вдалося виконати завдання ": app: mergeDebugResources". > Помилка: Неправильне ім'я файлу: має містити лише малі літери та цифри ([a-z0-9_.])
LightMan

5

У мене така ж проблема в Android Studio. Не потрібно перезапускати IDE, просто закрийте та повторно відкрийте проект, і це вирішить проблему. (Переконайтеся, що src є коректним введенням).


Перебудова проекту теж зробить це.
Майк

Я зробив File -> Invalidate Caches / Restart ..., який також працював (і, ймовірно, надмірний).
SMBiggs

3

В Android Studio ваш ресурс (зображення) ім'я файлу не може починатися NUMERICі він не може містити жодного BIGсимволу. Щоб вирішити свою проблему, зробіть так, як сказав Алія. Просто перезапустіть IDE. Це і вирішило мою проблему.


2

Спростіть ім’я вашого файлу, схоже, що будь-які спеціальні символи в імені файлу роблять його іконою. наприклад, змінити "my-main-header.png" на "header1.png" не впевнений, чому, але це працює


2
Це тому, що імена файлів ресурсів перетворюються в ідентифікатори ресурсів R.javaі -не є дійсним символом для ідентифікаторів.
laalto

2

Для Android Studio у мене була така ж проблема. Це було викликано запуском з Linux, тобто файли не отримували розширення автоматично. Вручну додавши .png до кінця імені файлів, він міг розпізнати тип файлу та відповідно завантажити його.

Android студія може привести в порядок шипучку, якщо ви спробуєте перейменувати перейменування всередині проекту, оскільки Android буде намагатися негайно відновити R. Я не знаю точно, що викликає помилку, оскільки вона вказує на якийсь, здавалося б, випадковий рядок коду, який у моєму випадку був коментарем.

Вирішення цього питання: Видаліть з проекту, який перейменовано, перейменуйте за межі проекту та вкажіть їх знову.


1

Це може бути навіть більш тривіально, ніж те, що пропонували інші плакати: якщо у вас кілька проектів, переконайтеся, що ви не створили файл макета xml у неправильному проекті.

Після створення файл автоматично відкриється, тому це може залишитися непоміченим, і ви припускаєте, що він є в правильному проекті. Очевидно, будь-які посилання на товарний ресурс або інші ресурси будуть недійсними.

І так, я такий дурний. Я закрию всі невикористані проекти відтепер :)


1

Я думаю, що я знайшов спосіб його роботи без перезавантаження Eclipse або без закриття проекту (він працював на мене):

  • перейменуйте ім'я файлу зображення під res / in Eclipse -> виберіть файл та натисніть F2 (для мене це res / dravable-mdpi / bush-landscape.jpg -> змінено на bush.jpg)

  • Створити проект (він все одно буде показувати помилку)

  • змінити зображення там, де ви його використовували (я змінив у графічному макеті. Для мене місцем було LinearLayout / Background / bush-пейзаж -> змінив "bush-пейзаж" на "bush")

  • Створити проект


1

Ім’я мого зображення було 21.jpg. Я перейменував його як abc.jpg, і він спрацював. Тому переконайтесь, що ваше ім'я зображення не починається з числа. Однак усі вищезазначені відповіді також приймаються.


1

Якщо у вас є правильні умови іменування, просто перейдіть до Файл -> Недійсний кеш / Перезапуск ..

І натисніть Недійсні кеші / Перезавантажте ..

Це допомогло в моєму випадку.


0

У моєму випадку у мене було зображення в різних папках (з однаковою назвою) для підтримки різних dpi та розмірів пристроїв. Усі зображення мали однакову назву, крім одного. Це було введено неправильно, і коли я перейменував його, як і інші назви, це вирішило мою проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.