W moim folderze do rysowania mam kilka obrazów i wszystkie odnoszą się idealnie, ale kiedy próbuję dodać więcej obrazów o dokładnie tym samym rozmiarze w tym samym folderze i próbuję odwołać się do niego, pojawia się błąd „Nie udało się przekonwertować @ drawable / picture in a drawable ” . Wypróbowałem ten sam obraz pod inną nazwą i po prostu wyświetla mi ten błąd. Próbowałem też w innym układzie XML i to samo. Również nazwa obrazka to "jack", "abc", "question_mark", jak widać, są ściśle określone zasady jakich znaków możesz używać, a mimo to komunikat o błędzie ciągle się pojawia. Każda rada byłaby świetna, jak rozwiązać problem, dzięki.
Nie udało się przekształcić @ drawable / picture w plik do rysowania
Odpowiedzi:
Uruchom ponownie Eclipse (niestety), a problem zniknie.
źródło
Sprawdź również, czy nazwa zasobu zawiera niedozwolone znaki (dla mnie był to „-” w moim obrazie)
źródło
Jeśli ponowne uruchomienie Eclipse nie rozwiąże problemu, upewnij się, że nazwa obrazu zaczyna się od znaku alfabetu (nienumerycznego).
źródło
file name
musi zawierać tylkoabc...xyz
012...789
_
.
w folderze Resources.na przykład:
my-image.png jest
False
!MyImage.png jest
False
!my image.png jest
False
!...
...
my-xml.xml jest
False
!MyXml.xml jest
False
!mój xml.xml to
False
!...
...
źródło
Dzieje się tak, ponieważ nazwa obrazu zawiera symbol „-”. jedyne dozwolone znaki to [a-zA-Z0-9_.]
Dzięki
źródło
Mam ten sam problem na Android Studio. Nie ma potrzeby ponownego uruchamiania IDE, po prostu zamknij i ponownie otwórz projekt, a to rozwiąże problem. (Upewnij się, że src są poprawnymi danymi wejściowymi).
źródło
W Android Studio nazwa pliku zasobów (obrazów) nie może zaczynać się od
NUMERIC
i nie może zawierać żadnegoBIG
znaku. Aby rozwiązać swój problem, zrób tak, jak powiedział Aliyah. Po prostu uruchom ponownie IDE. To również rozwiązało mój problem.źródło
Uprość nazwę pliku, wydaje się, że wszelkie znaki specjalne w nazwie pliku powodują, że czkawka. na przykład chaange „my-main-header.png” na „header1.png” nie wiem dlaczego, ale to działa
źródło
R.java
i-
nie są prawidłowym znakiem dla identyfikatorów.W przypadku Android Studio miałem ten sam problem. Było to spowodowane uruchomieniem z systemu Linux, co oznacza, że pliki nie otrzymały automatycznie rozszerzenia. Dodając ręcznie .png na końcu nazw plików, może rozpoznać typ pliku i odpowiednio załadować.
Studio Android może się nieźle skończyć, jeśli spróbujesz zmienić nazwę wewnątrz projektu, ponieważ Android spróbuje natychmiast zregenerować R. Nie wiem dokładnie, co powoduje błąd, ponieważ wskazuje na jakiś pozornie losowy wiersz kodu, który w moim przypadku był komentarzem.
Rozwiązanie: Usuń z rysunków, zmień nazwę poza projektem i wrzuć je ponownie.
źródło
Może to być nawet bardziej trywialne niż to, co sugerowały inne plakaty: jeśli masz wiele projektów, upewnij się, że nie utworzyłeś pliku układu XML w niewłaściwym projekcie.
Po utworzeniu plik otworzy się automatycznie, więc może to pozostać niezauważone i można założyć, że znajduje się we właściwym projekcie. Oczywiście wszelkie odniesienia do przedmiotów rysunkowych lub innych zasobów będą nieważne.
I tak, jestem taki głupi. Od teraz zamknę wszystkie nieużywane projekty :)
źródło
Myślę, że znalazłem sposób, aby to działało bez ponownego uruchamiania Eclipse lub bez zamykania projektu (u mnie zadziałało):
zmień nazwę pliku obrazu na res / w Eclipse -> wybierz plik i naciśnij F2 (dla mnie to res / drawable-mdpi / bush-landscape.jpg -> zmieniono na bush.jpg)
Kompiluj projekt (nadal będzie wyświetlał błąd)
zmień obraz, na którym go użyłeś (zmieniłem w układzie graficznym. Dla mnie miejsce to LinearLayout / Background / bush-landscape -> zmieniono „bush-landscape” na „bush”)
Zbuduj projekt
źródło
Nazwa mojego obrazu to 21.jpg. Zmieniłem nazwę na abc.jpg i zadziałało. Dlatego upewnij się, że nazwa obrazu nie zaczyna się od numeru. Jednak wszystkie powyższe odpowiedzi są również akceptowane.
źródło
Jeśli masz odpowiednie konwencje nazewnictwa, po prostu przejdź do Plik -> Unieważnij pamięć podręczną / Uruchom ponownie.
I naciśnij Unieważnij pamięci podręczne / Uruchom ponownie.
To pomogło w moim przypadku.
źródło
W moim przypadku miałem obraz w różnych folderach (o tej samej nazwie) do obsługi różnych dpi i rozmiarów urządzeń. Wszystkie obrazy miały tę samą nazwę z wyjątkiem jednego z nich. Został błędnie wpisany i kiedy zmieniłem jego nazwę na inne nazwy, rozwiązało to mój problem.
źródło