2012-04-24 10 views
8

Najbardziej znacząca zgłaszana przez użytkowników awaria mojej aplikacji znajduje się poniżej. Wygląda na to, że system nie może znaleźć pliku res/drawable-hdpi/scrollbar_handle_vertical.9.png Poniższy przykład wskazuje, że problem pojawia się podczas rysowania widoku, ale dzieje się tak również w przypadku innych działań w mojej aplikacji, z których wszystkie działają najlepiej czasu.Android FileNotFoundException res/drawable-hdpi/scrollbar_handle_vertical.9.png

Myślę, że jest to źródło android, którego nie musiałbym się martwić. Ale, aby przetestować, wziąłem plik z SDK i umieściłem go w folderze projektu drawable-hdpi na najnowszą wersję mojej aplikacji. Jednak nadal obserwuję raporty o awariach w Google Play.

Jakieś myśli o tym, co może się wydarzyć?

Nie używam teraz programu progaurd, więc nie ma sposobu na pozbycie się plików, których nie powinien.

android.view.InflateException: Binary XML file line #26: Error inflating class com.android.internal.app.AlertController$RecycleListView 
at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
at android.webkit.WebView$InvokeListBox.run(WebView.java:8308) 
at android.os.Handler.handleCallback(Handler.java:587) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
at com.android.internal.app.AlertController$RecycleListView.<init>(AlertController.java:703) 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
... 14 more 
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-hdpi/scrollbar_handle_vertical.9.png from drawable resource ID #0x0 
at android.content.res.Resources.loadDrawable(Resources.java:1714) 
at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
at android.widget.AbsListView.<init>(AbsListView.java:630) 
at android.widget.ListView.<init>(ListView.java:230) 
at android.widget.ListView.<init>(ListView.java:226) 
... 18 more 
Caused by: java.io.FileNotFoundException: res/drawable-hdpi/scrollbar_handle_vertical.9.png 
at android.content.res.AssetManager.openNonAssetNative(Native Method) 
at android.content.res.AssetManager.openNonAsset(AssetManager.java:405) 
at android.content.res.Resources.loadDrawable(Resources.java:1706) 
... 22 more 
+0

Ten plik pochodzi z [systemu Android] (https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable-hdpi/scrollbar_handle_vertical.9.png). Może możesz utworzyć niestandardowy motyw i dodać zamiennik dla ' @ android: drawable/scrollbar_handle_vertical', aby naprawić ten błąd. – zapl

+4

witam. Wszelkie aktualizacje tego błędu, które mogły nie zostać opublikowane? Właśnie zacząłem otrzymywać ten sam problem i nie mam pojęcia, dlaczego. –

Odpowiedz

2

Prawdopodobnie brakuje tego zasobu na jednym urządzeniu (lub większej liczbie urządzeń). np. w systemie Android na tym urządzeniu brakuje tego pliku. Interesujące byłoby sprawdzenie, czy problem dotyczy bardzo konkretnych urządzeń.

Oczekuję, że rozwiązanie będzie polegało na wykorzystaniu losowania w samej aplikacji (zamiast polegania na jednym z nich na Androidzie) i upewnieniu się, że jeden z nich jest przywoływany, a nie ten, którego brakuje na niektórych urządzeniach.

Za pomocą takich narzędzi, jak BugSense, można śledzić takie problemy, aby zebrać dane o uszkodzonych urządzeniach & wersje platformy. Jest to przydatne, jeśli nie możesz uzyskać tych informacji w raportach Sklepu Google Play.

+3

Widziałem ten błąd tylko na urządzeniach sgh-t959v z Androidem 2.2.1 w sieci T-Mobile. – jolo

+0

Widzieliśmy również tę samą awarię, na dokładnie tym urządzeniu, to jest zgłaszane jako SGH T959V z systemem 2.2.1. –

+0

Widzę ten sam problem na emulatorze Froyo w SDK. – fattire

0

Jeszcze jeden przypadek, kiedy tak się dzieje - kiedy używasz atrybutu/zasobu wprowadzonego w późniejszych wersjach Androida. Istnieje kilka skomplikowanych atrybutów odwzorowań indeksów, a gdy appt generuje R.java, prawdopodobnie może nakładać się na niektóre stare identyfikatory i pojawia się ten bardzo dziwny błąd.

Dla mnie ten sam błąd pojawił się, gdy w świetle została ustalona
android:foreground="?android:attr/selectableItemBackground"

selectableItemBackground została wprowadzona w API 11, ale został uruchomiony na emulatorze z api 7.

więc sprawdzić układy do korzystania z niektórych zasobów wprowadzone później niż twoja minSdkVersion. Można go sprawdzić pod adresem R.java reference

Powiązane problemy