2013-04-19 3 views
6

stavo controllando il mio segnalazioni di bug e di volta in volta che otteniamo questo bug report dalla nostra app. Non posso pinta punto qual è il vero problema. Questa risorsa esiste, la maggior parte dei dispositivi funzionano bene, ma alcuni dispositivi specifici come LG-E510 o U8815 semplicemente non posso caricare questa risorsa.

Qualche idea?

android.content.res.Resources$NotFoundException: File res/drawable-xhdpi/action_bar_search_icon.png from drawable resource ID #0x7f02007f 
at android.content.res.Resources.loadDrawable(Resources.java:1714) 
at android.content.res.Resources.getDrawable(Resources.java:581) 
at com.actionbarsherlock.internal.view.menu.MenuItemImpl.getIcon(MenuItemImpl.java:384) 
at com.actionbarsherlock.internal.view.menu.ActionMenuItemView.initialize(ActionMenuItemView.java:128) 
at com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.bindItemView(ActionMenuPresenter.java:192) 
at com.actionbarsherlock.internal.view.menu.BaseMenuPresenter.getItemView(BaseMenuPresenter.java:176) 
at com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:178) 
+0

è questa risorsa esistere nella cartella drawable-xhdpi, perché dobbiamo mettere le risorse in base alla loro risoluzione, si intendono i dispositivi a basso utilizzeranno le risorse dalla cartella ldpi e mezzo sarà da mdpi e così via ... quindi prima di tutto controlla se questo sia successo la fonte è presente nella cartella appropriata. – Ajit

+0

Oppure inserisci la tua risorsa nella cartella drawable predefinita in modo che il sistema la scelga se non è appropriato. – vinoth

+0

I dispositivi Well sono in grado di ridimensionare le risorse da XHDPI a qualsiasi cencity di cui hanno bisogno. Quindi non è questo il problema. –

risposta

7

come lei ha detto, se il telefono/scheda accede alla directory xhdpi allora ci aspettiamo che scalare l'immagine in modo appropriato per adattarsi allo schermo. Quindi ci aspettiamo che se la risorsa esiste in QUALSIASI delle directory, non vedremo mai un'eccezione ResourceNotFound. TUTTAVIA:

xhdpi stato introdotto solo nel SDK di Android 8, quindi se si target SDK 7 e versioni precedenti si può incorrere in problemi:

Only use XHDPI drawables in Android app?

Un'altra ragione per cui Android non può essere in grado di accedere al xhdpi directory è se il dispositivo è in esecuzione in modalità compatibilità schermo:

Android - Extra large images placed in res/drawable-xhdpi aren't showing on tablet emulator, why?

Un'altra possibile ragione è che se il vostro disegnabile è molto piccolo e una delle sue dimensioni è arrotondato a zero a causa del ridimensionamento:

Android resource not found because of width and height

Infine, è possibile che alcune versioni OEM di Android possono implementare questo in un modo non standard (ad esempio, "migliorare le prestazioni" di non cercare il xhdpi directory se il loro dispositivo è hdpi):

Android Drawable hdpi xhdpi mdpi ldpi concept

-1

È necessario conservare i file eseguibili nella cartella hdpi. Poiché i telefoni su cui non funziona hanno meno pixel, non possono mostrare l'immagine. Basta spostare i file.

Edit: hanno meno pixel perché hanno una dimensione dello schermo più piccolo.