【问题标题】:Your content must have a ListView whose id attribute is 'android.R.id.list' when extending ListActivity [duplicate]扩展 ListActivity 时,您的内容必须有一个 id 属性为“android.R.id.list”的 ListView [重复]
【发布时间】:2013-06-02 15:46:52
【问题描述】:

LogCat

06-02 15:53:34.742: E/Trace(1188): error opening trace file: No such file or directory (2)
06-02 15:53:36.682: D/dalvikvm(1188): GC_FOR_ALLOC freed 49K, 7% free 2539K/2708K, paused 483ms, total 484ms
06-02 15:53:36.712: I/dalvikvm-heap(1188): Grow heap (frag case) to 3.666MB for 1127536-byte allocation
06-02 15:53:36.782: D/dalvikvm(1188): GC_FOR_ALLOC freed 1K, 5% free 3639K/3812K, paused 69ms, total 69ms
06-02 15:53:36.902: D/dalvikvm(1188): GC_CONCURRENT freed <1K, 5% free 3639K/3812K, paused 15ms+42ms, total 123ms
06-02 15:53:37.672: I/Choreographer(1188): Skipped 49 frames!  The application may be doing too much work on its main thread.
06-02 15:53:37.705: D/gralloc_goldfish(1188): Emulator without GPU emulation detected.
06-02 15:53:40.412: D/AndroidRuntime(1188): Shutting down VM
06-02 15:53:40.412: W/dalvikvm(1188): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-02 15:53:40.612: E/AndroidRuntime(1188): FATAL EXCEPTION: main
06-02 15:53:40.612: E/AndroidRuntime(1188): java.lang.RuntimeException: Unable to start activity ComponentInfo{testing.android.application.three/testing.android.application.three.MainActivityNext}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.os.Looper.loop(Looper.java:137)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread.main(ActivityThread.java:5041)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at java.lang.reflect.Method.invokeNative(Native Method)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at java.lang.reflect.Method.invoke(Method.java:511)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at dalvik.system.NativeStart.main(Native Method)
06-02 15:53:40.612: E/AndroidRuntime(1188): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ListActivity.onContentChanged(ListActivity.java:243)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:273)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.Activity.setContentView(Activity.java:1881)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at testing.android.application.three.MainActivityNext.onCreate(MainActivityNext.java:28)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.Activity.performCreate(Activity.java:5104)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
06-02 15:53:40.612: E/AndroidRuntime(1188):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
06-02 15:53:40.612: E/AndroidRuntime(1188):     ... 11 more
06-02 15:53:44.662: I/Process(1188): Sending signal. PID: 1188 SIG: 9

【问题讨论】:

  • 请发布您的代码并解释发生了什么以及出了什么问题
  • 我有,检查问题。
  • @koesie10 不,应该改回 OP 并发布一个新问题,否则会令其他人感到困惑

标签: java android


【解决方案1】:

您的问题是您正在尝试 extends ListActivity 而您没有 ListView

android:id="android.R.id.list"

你需要在你的 xml 中有一个ListView 和那个id。请将其添加到您的 xml 中

您可以通过 logcat 中的以下行来判断

Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'

如果您找到引用您的 Activity 的下一行,它将告诉您类和行号

at testing.android.application.three.MainActivityNext.onCreate(MainActivityNext.java:28)

所以MainActivityNext 第 28 行显示异常。

注意

如评论中所述,请不要在寻求帮助时只发布未格式化的 logcat。请尝试查找错误发生的位置并发布相关代码以及问题的描述。从错误中很容易看出这一点,但通常我们需要查看一些代码

您可以使用 CTRL+K 来格式化您的代码和 logcat 或使用上面的编码括号 {}

【讨论】:

  • 原谅我的朋友,我已经用当前状态编辑了问题。
  • 没关系,但你不能像那样更改 OP,否则它会变得混乱和对其他人无用。请将其更改为原始问题并发布一个带有相关错误消息和代码的新问题
  • 是的,然后接受其中一个答案并发布一个新问题。事实上,我们的答案与您显示的代码/错误不匹配,因此对其他人没有意义,因此对其他人毫无用处
  • 在您的新帖子中包含出现错误的代码以及错误内容和/或 logcat
  • stackoverflow.com/questions/16884897/… 如果您能提供帮助,请提出新问题。
【解决方案2】:

您已经定义了一个 ListViewActivity(我猜),但它没有 @android:id/list。您应该像这样更改 ListView 的 ID:

<ListView
  android:id="@android:id/list"
  android:layout_width="match_parent"
  android:layout_height="wrap_content" >
</ListView> 

【讨论】:

  • 我做了,但仍然显示三个错误。检查已编辑的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多