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.