Android: không thể chuyển đổi @ drawable / picture thành drawable


112

Trong thư mục có thể vẽ của tôi, tôi có một vài hình ảnh và tất cả chúng đều tham chiếu hoàn hảo, nhưng khi tôi thử và thêm bất kỳ hình ảnh nào khác có cùng kích thước chính xác vào cùng một thư mục và cố gắng tham chiếu nó, thì sẽ báo lỗi "Không thể chuyển đổi @ drawable / bức tranh thành có thể vẽ được ” . Tôi đã thử cùng một hình ảnh với một tên khác và nó vẫn tiếp tục cho tôi lỗi đó. Tôi cũng đã thử nó trong một bố cục XML khác và điều tương tự. Ngoài ra, tên của bức tranh đã được "jack", "abc", "question_mark" vì bạn có thể thấy có rất nhiều quy tắc về những ký tự bạn có thể sử dụng, và thông báo lỗi vẫn tiếp tục xuất hiện. Bất kỳ lời khuyên sẽ là tuyệt vời về cách khắc phục sự cố, cảm ơn.

Không chuyển đổi được @ drawable / picture thành drawable


2
Tất cả được sắp xếp vì một số lý do kỳ lạ, đột nhiên sau một vài cú nhấp chuột xung quanh nó hoạt động! lời khuyên của tôi nếu bạn gặp sự cố này là chỉ cần khởi động lại nhật thực và đảm bảo mọi thứ được tham chiếu và đặt tên chính xác.
Jack Trowbridge

2
Đôi khi, chỉ cần xây dựng lại dự án từ đầu sẽ giúp bạn loại bỏ các vấn đề SDK Android này. Tôi đã thấy những trường hợp kỳ lạ trong đó nó sử dụng hình ảnh sai cho tất cả các tệp có thể vẽ của tôi (không có lỗi, nhưng sử dụng hình ảnh bên cạnh hình ảnh đúng cho mọi tệp có thể vẽ) có thể là một vấn đề id tham chiếu.
Guillaume

một lần nữa -1 Android, +1 Windows
mihai71

4
Đối với tôi, đó là ký tự "-" ở giữa tên tệp. Sau khi đổi tên, mọi thứ đều ổn trong Android Studio.
martin.p,

Câu trả lời:


200

Khởi động lại Eclipse (thật không may) và sự cố sẽ biến mất.


Đóng và mở lại dự án trong Eclipse phù hợp với tôi. Cảm ơn Aliyah!
stephen.hanson

Tôi gặp vấn đề này với drawable-normal-hdpi nhưng khi có hình ảnh của tôi ở drawable-hdpi - mọi thứ đều ổn.
Yar

@DoctororDrive - có lẽ vấn đề của bạn hơi khác. bạn vẫn có lỗi?
Androliyah

4
khá hài hước rằng vấn đề này tồn tại trong cả nhật thực và studio android
Mohammad AbuShady

3
dự án đóng / mở lại không hoạt động với tôi, nhưng thoát / khởi động lại studio android đã hoạt động. cảm ơn bạn Aliyah.
tmr

143

Ngoài ra, hãy kiểm tra xem tên tài nguyên có chứa bất kỳ ký tự bất hợp pháp nào không (đối với tôi đó là "-" trong hình ảnh của tôi)


Gói biểu tượng riêng của Android chứa các tên tệp như 10-device-access-alertms.png, mà Eclipse sử dụng! Cảm ơn.
Noumenon

12
Android studio cũng mắc kẹt với những tên tệp đó. Đổi tên thành gạch dưới đã sửa nó cho tôi.
Cypress Frankenfeld

Đối với tôi đó là ký tự khoảng trắng ""!
Efreeto

không gian là thủ phạm trong trường hợp của tôi
Saju

nó là "-" đối với tôi là tốt, lạ xưởng android không đỏ đánh dấu điều này ...
Haseeb Zulfiqar

55

Nếu khởi động lại Eclipse không khắc phục được sự cố, hãy đảm bảo rằng tên hình ảnh bắt đầu bằng ký tự alpha (không phải số).


4
Cảm ơn. Android tạo biến id có thể vẽ trong tệp R với tên có thể vẽ. Ví dụ: nếu tệp bắt đầu bằng một số thì biến sẽ bắt đầu bằng một số và điều này không được phép trên ngôn ngữ Java.
momo

9
Đồng thời đảm bảo rằng nó không chứa dấu gạch ngang (-); ví dụ: 'mic-back' không hợp lệ, 'mic_back' là ok
Markus

Đây là vấn đề của tôi. Tất cả các biểu tượng trong gói trên trang web của Android đều có số lượng hàng đầu.
theblang

Nó có phải là một png? Tôi đang cố gắng sử dụng jpg.
IgorGanapolsky

28

file namechỉ được chứa abc...xyz 012...789 _ . trong thư mục Tài nguyên.

cho người yêu cũ:

my-image.pngFalse !
MyImage.pngFalse !
hình ảnh của tôi. pngFalse !
...
...

my-xml.xmlFalse !
MyXml.xmlFalse !
xml.xml của tôiFalse !
...
...


25

Điều này là do tên Hình ảnh của bạn có chứa ký hiệu "-". các ký tự được phép duy nhất là [a-zA-Z0-9_.]

Cảm ơn


1
Chữ hoa không hợp lệ. Nếu bạn sử dụng chúng, Android Studio sẽ xuất hiện lỗi này: Lỗi: Không thực thi được tác vụ ': app: mergeDebugResources'. > Lỗi: Tên tệp không hợp lệ: chỉ được chứa các chữ cái thường và chữ số ([a-z0-9_.])
LightMan

5

Tôi gặp sự cố tương tự trên Android Studio. Không cần khởi động lại IDE, chỉ cần đóng và mở lại dự án và điều đó sẽ giải quyết được sự cố. (Đảm bảo rằng src là đầu vào tương quan).


Xây dựng lại dự án cũng sẽ làm được.
Mike

Tôi đã thực hiện File -> Invalidate Caches / Restart ..., cách này cũng hoạt động (và có thể là quá mức cần thiết).
SMBiggs

3

Trong Android Studio, tên tệp tài nguyên (hình ảnh) của bạn không được bắt đầu bằng NUMERICvà không được chứa bất kỳ BIGký tự nào . Để giải quyết vấn đề của bạn, hãy làm như Aliyah đã nói. Chỉ cần khởi động lại IDE của bạn. Điều này cũng giải quyết được vấn đề của tôi.


2

Đơn giản hóa tên tệp của bạn, dường như bất kỳ ký tự đặc biệt nào trong tên tệp đều khiến nó bị trục trặc. ví dụ: chaange "my-main-header.png" thành "header1.png" không chắc tại sao, nhưng nó hoạt động


2
Đó là bởi vì tên tệp tài nguyên được chuyển đổi thành định danh tài nguyên trong R.java-không phải là ký tự hợp lệ cho định danh.
laalto

2

Đối với Android Studio, tôi cũng gặp phải vấn đề này. Nguyên nhân là do chạy từ linux, nghĩa là các tệp không tự động nhận được phần mở rộng. Bằng cách thêm thủ công .png vào cuối tên tệp, nó có thể nhận dạng loại tệp và tải tương ứng.

Android studio có thể gặp rắc rối nếu bạn cố gắng tái cấu trúc lại tên bên trong dự án, vì android sẽ cố gắng tạo lại R ngay lập tức. Tôi không biết chính xác nguyên nhân gây ra lỗi vì nó trỏ đến một số dòng mã dường như ngẫu nhiên, trong trường hợp của tôi là một nhận xét.

Giải pháp cho điều đó: Xóa khỏi drawable, đổi tên bên ngoài của dự án và ném chúng vào lại.


1

Nó thậm chí còn tầm thường hơn những gì các áp phích khác đề xuất: nếu bạn có nhiều dự án, hãy đảm bảo rằng bạn đã không tạo tệp bố cục xml trong dự án sai.

Sau khi tạo, tệp sẽ tự động mở nên điều này có thể không được chú ý và bạn cho rằng nó nằm trong dự án chính xác. Rõ ràng là bất kỳ tham chiếu nào đến các vật có thể kéo được hoặc các tài nguyên khác sẽ không hợp lệ.

Và vâng, tôi thật ngu ngốc. Tôi sẽ đóng mọi dự án không sử dụng từ bây giờ :)


1

Tôi nghĩ rằng tôi đã tìm ra cách để nó hoạt động mà không cần khởi động lại Eclipse hoặc không cần đóng dự án (nó hoạt động với tôi):

  • đổi tên tên tệp hình ảnh dưới res / trong Eclipse -> chọn tệp và nhấn F2 (đối với tôi là res / drawable-mdpi / bush-Landscape.jpg -> đổi thành bush.jpg)

  • Xây dựng dự án (nó vẫn sẽ hiển thị lỗi)

  • thay đổi hình ảnh nơi bạn sử dụng nó (Tôi đã thay đổi trong Bố cục Đồ họa. Đối với tôi, địa điểm là LinearLayout / Background / bush-Landscape -> đã thay đổi "bush-Landscape" thành "bush")

  • Xây dựng dự án


1

Tên hình ảnh của tôi là 21.jpg. Tôi đã đổi tên nó thành abc.jpg và nó đã hoạt động. Vì vậy, hãy đảm bảo rằng tên hình ảnh của bạn không bắt đầu bằng một số. Tuy nhiên tất cả các câu trả lời trên cũng được chấp nhận.


1

Nếu bạn có đúng quy ước đặt tên, thì chỉ cần đi tới Tệp -> Vô hiệu hóa bộ nhớ cache / Khởi động lại ..

Và nhấn Invalidate Caches / Restart ..

Điều này đã giúp trong trường hợp của tôi.


0

Trong trường hợp của tôi, tôi có một hình ảnh trong các thư mục khác nhau (có cùng tên) để hỗ trợ các kích thước thiết bị và dpi khác nhau. Tất cả các hình ảnh có cùng tên ngoại trừ một trong số chúng. Nó đã được nhập sai và một khi tôi đổi tên nó giống như các tên khác, nó đã giải quyết được vấn đề của tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.