2014-01-15 6 views
0

Сообщил много, но проблема, как представляется, разные:

В одном из моего устройства, приложение падает на нажатие кнопки с следующий лог-

01-14 19:50:51.284: V/Provider/Setting(31765): invalidate [system]: current 397 != cached 0 
01-14 19:50:51.363: W/ResourceType(31765): No package identifier when getting value for resource number 0x00000000 
01-14 19:50:51.365: D/AndroidRuntime(31765): Shutting down VM 
01-14 19:50:51.365: W/dalvikvm(31765): threadid=1: thread exiting with uncaught exception (group=0x40d12258) 
01-14 19:50:51.368: E/AndroidRuntime(31765): FATAL EXCEPTION: main 
01-14 19:50:51.368: E/AndroidRuntime(31765): android.content.res.Resources$NotFoundException: Resource ID #0x0 
01-14 19:50:51.368: E/AndroidRuntime(31765): at android.content.res.Resources.getValue(Resources.java:1036) 
01-14 19:50:51.368: E/AndroidRuntime(31765): at android.content.res.Resources.loadXmlResourceParser(Resources.java:2140) 
01-14 19:50:51.368: E/AndroidRuntime(31765): at android.content.res.Resources.getXml(Resources.java:924) 
01-14 19:50:51.368: E/AndroidRuntime(31765): at com.palash.main.Popper.setRules(Popper.java:869) 

Popper.java:

int resId = getResources().getIdentifier("xml/" + rule_file, "string", getActivity().getPackageName()); 

XmlPullParser xpp0 = getResources().getXml(resId); //Line 869 
XMLData xml = new XMLData(xpp0); 

ПРИМЕЧАНИЕ:

Приложение дает HUD, который сообщает "Unfortunately, Palash has stopped", а затем дает два варианта: "Free Space" и "OK".

Нажатие кнопки OK помещает меня на главный экран устройства, а кнопка «Свободное пространство» помещает меня в приложение «Настройки» на устройстве.

+0

"xml /" + rule_file -> файл правил (если этот идентификатор существует и, конечно, ссылается на строку) – njzk2

+0

Ну его довольно очевидный ресурс с идентификатором resId не найден. – hendrix

+0

@smitalm - Это правильно, но тот же код работает на моем другом устройстве. То есть, 'resId' найден. Как ? –

ответ

1

getIdentifier() 0 данного ресурса не найден, а 0 не является допустимым идентификатором ресурса.

Перед тем, как позвонить getXml(), необходимо проверить на наличие resId != 0.

А затем выяснить, почему ресурс rule_file не найден - в этом вопросе недостаточно информации.

+0

Понятно, может ли эта проблема возникнуть, если 1) Либо нет свободного места на устройстве ИЛИ 2) Неправильное создание приложения, т. Е. Вам нужно перестроить приложение «Чистым»? Я спрашиваю, потому что тот же код работает на моем другом устройстве. –

+0

Может возникнуть какая-то более глубокая проблема, но 'resId == 0' является наиболее очевидным и должен быть исключен первым. – laalto

Смежные вопросы