Странное исключение в ListView Android - PullRequest
2 голосов
/ 13 февраля 2012

Я получаю исключение, но не могу получить, где именно произошло исключение.Я искал, но не смог получить имя моего проекта в трассировке стека.

Ниже приведена моя трассировка стека

02-13 15:48:23.741: W/dalvikvm(416): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-13 15:48:24.026: W/System.err(416):    android.content.res.Resources$NotFoundException: File  from xml type layout resource ID   #0x102000a
02-13 15:48:24.036: W/System.err(416):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:1916)
02-13 15:48:24.036: W/System.err(416):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:1871)
02-13 15:48:24.036: W/System.err(416):  at android.content.res.Resources.getLayout(Resources.java:731)
02-13 15:48:24.036: W/System.err(416):  at android.view.LayoutInflater.inflate(LayoutInflater.java:318)
02-13 15:48:24.036: W/System.err(416):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332)
02-13 15:48:24.036: W/System.err(416):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
02-13 15:48:24.036: W/System.err(416):  at android.widget.AbsListView.obtainView(AbsListView.java:1315)
02-13 15:48:24.046: W/System.err(416):  at android.widget.ListView.makeAndAddView(ListView.java:1727)
02-13 15:48:24.046: W/System.err(416):  at android.widget.ListView.fillDown(ListView.java:652)
02-13 15:48:24.046: W/System.err(416):  at android.widget.ListView.fillFromTop(ListView.java:709)
02-13 15:48:24.046: W/System.err(416):  at android.widget.ListView.layoutChildren(ListView.java:1580)
02-13 15:48:24.046: W/System.err(416):  at android.widget.AbsListView.onLayout(AbsListView.java:1147)
02-13 15:48:24.046: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.046: W/System.err(416):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-13 15:48:24.046: W/System.err(416):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
02-13 15:48:24.046: W/System.err(416):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
02-13 15:48:24.046: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.046: W/System.err(416):  at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909)
02-13 15:48:24.056: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.056: W/System.err(416):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-13 15:48:24.056: W/System.err(416):  at android.widget.LinearLayout.layoutHorizontal(LinearLayout.java:1238)
02-13 15:48:24.056: W/System.err(416):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1044)
02-13 15:48:24.056: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.056: W/System.err(416):  at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-13 15:48:24.056: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.056: W/System.err(416):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-13 15:48:24.066: W/System.err(416):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
02-13 15:48:24.066: W/System.err(416):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
02-13 15:48:24.066: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.076: W/System.err(416):  at    android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-13 15:48:24.076: W/System.err(416):  at android.view.View.layout(View.java:7035)
02-13 15:48:24.076: W/System.err(416):  at    android.view.ViewRoot.performTraversals(ViewRoot.java:1045)
02-13 15:48:24.076: W/System.err(416):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
02-13 15:48:24.076: W/System.err(416):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-13 15:48:24.076: W/System.err(416):  at android.os.Looper.loop(Looper.java:123)
02-13 15:48:24.076: W/System.err(416):  at android.app.ActivityThread.main(ActivityThread.java:4627)
02-13 15:48:24.076: W/System.err(416):  at java.lang.reflect.Method.invokeNative(Native Method)
02-13 15:48:24.086: W/System.err(416):  at java.lang.reflect.Method.invoke(Method.java:521)
02-13 15:48:24.086: W/System.err(416):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-13 15:48:24.086: W/System.err(416):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-13 15:48:24.086: W/System.err(416):  at dalvik.system.NativeStart.main(Native Method)
 02-13 15:48:24.086: W/System.err(416): Caused by: java.io.FileNotFoundException: 
 02-13 15:48:24.086: W/System.err(416):     at android.content.res.AssetManager.openXmlAssetNative(Native Method)
02-13 15:48:24.086: W/System.err(416):  at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:485)
02-13 15:48:24.086: W/System.err(416):  at android.content.res.Resources.loadXmlResourceParser(Resources.java:1898)
02-13 15:48:24.086: W/System.err(416):  ... 40 more

Имя пакета моего проекта

com.stylingandroid.IntelligentLayout.SecondaryLayout;

Я не смогУвидеть имя моего пакета вообще. Прежде чем у меня появилось исключение, которое я установил правильно, исключение было

02-13 15:39:25.756: W/System.err(379): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

Я изменил свой ListView Id на android:id="@id/android:list" и в коде Java я изменил адаптер как

  setListAdapter(new ArrayAdapter<String>(this,android.R.id.list, STATE));
   getListView().setTextFilterEnabled(true);

Мой класс расширяет ListActivity

public class StateList extends ListActivity{

Ждем вашего ответа.спасибо.

Ответы [ 3 ]

1 голос
/ 13 февраля 2012

Похоже, что ресурс отсутствует 0x102000a.Вам нужно отменить ссылку на это значение в вашем R.java и найти ресурс, который вызывает эту проблему.

Я также подозреваю, что вы использовали свой собственный идентификатор, а не android.R.id.listчтобы определить свой ресурс в XML-файле макета.

См. В чем разница между @ + id / android: list и @ + id / list

ListView не являетсятак же прямо, как и другие виджеты.Требуется немного более детального изучения, чтобы заставить его работать.Я прошел этот цикл:).

1 голос
/ 13 февраля 2012

Пожалуйста, проверьте спецификации ListView на форуме разработчиков Android: http://developer.android.com/resources/tutorials/views/hello-listview.html

Приведенному ниже методу требуется ресурс макета, который используется для отображения каждого элемента в списке.

setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

Итак, здесь каждый элемент списка будет отображаться как TextView.

0 голосов
/ 04 марта 2012

У меня была такая же проблема. Мой класс расширялся ListActivity, я изменил на Activity и теперь работает.

...