2012-02-13 79 views
2

我收到一个异常,但无法得到发生异常的位置。 我搜索,但无法在堆栈跟踪中获取我的项目名称。ListView Android中的奇怪异常

下面是我的堆栈跟踪

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{ 

期待您的回复。 谢谢。

+0

将ListActivity更改为Activity – 2012-02-13 10:42:20

+0

那么我将如何使用setListAdapter'setListAdapter(new ArrayAdapter (this,android.R.id.list,STATE)); getListView()。setTextFilterEnabled(true);' 当更改为只是活动我得到的方法setListAdapter是未定义的。 'super.onListItemClick(l,v,position,id); \t对象o = this.getListAdapter()。getItem(position);' listItem上的方法未定义为Activity。 对于StateList类型,未定义getListAdapter()方法。 – Mukunda 2012-02-13 10:45:50

+0

http:// stackoverflow。com/questions/2242136/how-can-i-implement -a-listview-without-listactivity-use-only-activity – 2012-02-13 10:57:34

回答

1

似乎缺少资源0x102000a。您需要从您的R.java反向引用此值,并找到导致此问题的资源。

我还怀疑你已经使用了你自己的id,而不是android.R.id.list来识别你的布局xml文件中的资源。

参考What is difference between @+id/android:list and @+id/list

的ListView不是直线前进的其他部件。进行一些更详细的研究以使其工作。我经历了那个循环:)。

1

请您在Android开发者论坛上的ListView规格: 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

谢谢,但我的布局中有很多TextView,而且我的布局很大,我先尝试调用布局,然后再调用TextView,但得到异常。 我在这里得到了异常'setContentView(R.layout.statelist_layout);'和以后我使用TextView'setListAdapter(new ArrayAdapter (this,R.id.listitem,STATE));' 我得到的异常是'W/dalvikvm(455):threadid = 1:线程退出时未捕获的异常(组= 0x4001d800)'。 – Mukunda 2012-02-13 12:06:08

0

我有同样的问题。我的班级正在扩展ListActivity,我更改为Activity,现在正在运行。