2011-12-21 7 views
34

Dostaję dziwne raporty o awariach od Droid X i Droid Pro.zz_moto_actionbar_bkg.xml błąd zasobów w Droidu

android.content.res.Resources$NotFoundException: 
File res/drawable/zz_moto_actionbar_bkg.xml from drawable resource ID #0x10803a8 
    at android.content.res.Resources.loadDrawable(Resources.java:1735) 
    at android.content.res.Resources.getDrawable(Resources.java:596) 
    at android.view.View.setBackgroundResource(View.java:7542) 
    at com.android.internal.app.AlertController.setBackground(AlertController.java:719) 
    at com.android.internal.app.AlertController.setupView(AlertController.java:424) 
    at com.android.internal.app.AlertController.installContent(AlertController.java:232) 
    at android.app.AlertDialog.onCreate(AlertDialog.java:251) 
    at android.app.Dialog.dispatchOnCreate(Dialog.java:307) 
    at android.app.Dialog.show(Dialog.java:225) 
    at android.app.AlertDialog$Builder.show(AlertDialog.java:802) 
    at com.*******.a(SourceFile:320) 
    at com.*******.onOptionsItemSelected(SourceFile:292) 
    at android.app.Activity.onMenuItemSelected(Activity.java:2251) 
    at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:809) 
    at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 
    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) 
    at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:553) 
    at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122) 
    at android.view.View$PerformClick.run(View.java:9089) 
    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:3806) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
    at android.graphics.drawable.LayerDrawable.addLayer(LayerDrawable.java:186) 
    at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:157) 
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:795) 
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:736) 
    at android.content.res.Resources.loadDrawable(Resources.java:1732) 
    ... 27 more 
java.lang.NullPointerException 
    at android.graphics.drawable.LayerDrawable.addLayer(LayerDrawable.java:186) 
    at android.graphics.drawable.LayerDrawable.inflate(LayerDrawable.java:157) 
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:795) 
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:736) 
    at android.content.res.Resources.loadDrawable(Resources.java:1732) 
    at android.content.res.Resources.getDrawable(Resources.java:596) 
    at android.view.View.setBackgroundResource(View.java:7542) 
    at com.android.internal.app.AlertController.setBackground(AlertController.java:719) 
    at com.android.internal.app.AlertController.setupView(AlertController.java:424) 
    at com.android.internal.app.AlertController.installContent(AlertController.java:232) 
    at android.app.AlertDialog.onCreate(AlertDialog.java:251) 
    at android.app.Dialog.dispatchOnCreate(Dialog.java:307) 
    at android.app.Dialog.show(Dialog.java:225) 
    at android.app.AlertDialog$Builder.show(AlertDialog.java:802) 
    at com.*******.a(SourceFile:320) 
    at com.*******.onOptionsItemSelected(SourceFile:292) 
    at android.app.Activity.onMenuItemSelected(Activity.java:2251) 
    at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:809) 
    at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 
    at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855) 
    at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:553) 
    at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122) 
    at android.view.View$PerformClick.run(View.java:9089) 
    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:3806) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    at dalvik.system.NativeStart.main(Native Method) 

Zdarza się po uruchomieniu okna dialogowego alertu. Oczywiście nie używam żadnego takiego zasobu, a tylko zasób, którego używam na AlertDialog, to android.R.drawable.ic_input_add.

Próbowałem wyszukiwać w tej sprawie, ale jedyną trafną stroną, którą znalazłem była https://supportforums.motorola.com/message/513190 i to niewiele pomaga.

Czy ktoś inny miał podobny problem lub znalazł rozwiązanie tego problemu?

+0

Czy przypadkiem znalazłeś rozwiązanie tego problemu? Widzę również błąd, ale jest na Droid RAZR. Myślę, że Motorola stworzyła własną klasę AlertDialog, aby zastąpić stanie AlertDialog, i to w jakiś sposób jest w konflikcie. – hooked82

+0

@ hooked82 niestety nie. W pewnym momencie poddałem się. – dasony

+0

Jeśli chodzi o jakąkolwiek gwarancję, to ja też zaczęłam napotykać to. Mój jest na niektórych instrukcjach pojawia się w widoku alertu, ale nie wiem, czy jest w 100% odtwarzalny. (Motorola Droid X/Shadow na Verizon z systemem Android 2.3.3) – sradforth

Odpowiedz

8

Trafiliśmy na ten sam błąd i przynajmniej w naszym przypadku okazało się, że brakuje pamięci podczas ładowania obrazu związanego z tym układem. Sam układ wydaje się być czymś, co Motorola robi dla okna alertu (moje założenie). Jedynym sposobem, w jaki dowiedziałem się, że był OutOfMemoryError, jest to, że nasz tester QA wygenerował raport błędów adb, kiedy trafił w awarię i mogłem zobaczyć OutOfMemoryError w raporcie błędów spowodowanym podczas próby zdekodowania obrazu (w tym samym wątku, w którym śledzenie stosu został wygenerowany).

+0

Wszystkie aktywa 'zz_moto' są częścią motywu Motoroli. Podoba mi się twoja sugestia, że ​​to naprawdę OutOfMemoryError. – Nuthatch

-2

spróbować ten kod wpisz w oknie alertu

{ 
myDialog = new Dialog(context); 
myDialog.setContentView(R.layout.addfence_dialog); 
myDialog.setTitle("EditFence"); 
myDialog.setCancelable(true); 

strTitle = (EditText) myDialog.findViewById(R.id.add_dialog_edtTitle); 
strArea = (EditText) myDialog.findViewById(R.id.add_dialog_edtArea); 
strDescription = (EditText) myDialog.findViewById(R.id.add_dialog_edtDescription); 
strTag = (EditText) myDialog.findViewById(R.id.add_dialog_edtTag); 

save = (Button) myDialog.findViewById(R.id.add_dialog_btnSave); 
cancel = (Button) myDialog.findViewById(R.id.add_dialog_btnCancel); 

strTitle.setText(getTitle); 
strArea.setText(getArea); 
strDescription.setText(getDesc); 
strTag.setText(getTag); 

save.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
      ..... 
} 
myDialog.show(); 
} 
1

komórkowe Motorola są tak irytujące, a czasami może być spainful. Kiedyś ikona bieżącej lokalizacji nie była wyświetlana na mapie google tylko z telefonami Motorola. Naprawiono problem z uaktualnieniem ICS, więc wszystkie wysiłki i czas, jaki poświęciłem na rozwiązanie problemu, poszły na marne. A teraz mam ten sam problem z niektórymi użytkownikami, gdy otwarte jest okno alertu. A najgorsze jest to, że nie mogę tego odtworzyć na tym samym telefonie, tym samym systemie operacyjnym, z którego użytkownik zgłosił błąd.