【问题标题】:Random exception java.lang.IllegalStateException: Fragment does not have a view随机异常 java.lang.IllegalStateException: Fragment 没有视图
【发布时间】:2016-02-12 00:51:12
【问题描述】:

许多用户都面临此异常。我使用了几个活动和片段,所以我不知道它是从哪里产生的。这绝对与 DialogFragment 无关,因为我什至没有在我的应用程序中使用它。

这是完整的堆栈跟踪:

0   java.lang.RuntimeException: Unable to start activity ComponentInfo{project/project.MainActivity}: java.lang.IllegalStateException: Fragment does not have a view
1       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426)
2       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
3       at android.app.ActivityThread.-wrap11(ActivityThread.java)
4       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
5       at android.os.Handler.dispatchMessage(Handler.java:102)
6       at android.os.Looper.loop(Looper.java:148)
7       at android.app.ActivityThread.main(ActivityThread.java:5443)
8       at java.lang.reflect.Method.invoke(Native Method)
9       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
10      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
11  Caused by: java.lang.IllegalStateException: Fragment does not have a view
12      at android.support.v4.app.Fragment$1.onFindViewById(SourceFile:1922)
13      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1057)
14      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1248)
15      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1230)
16      at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(SourceFile:2042)
17      at android.support.v4.app.Fragment.performActivityCreated(SourceFile:1976)
18      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1092)
19      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1248)
20      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1230)
21      at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(SourceFile:2042)
22      at android.support.v4.app.FragmentController.dispatchActivityCreated(SourceFile:165)
23      at android.support.v4.app.FragmentActivity.onStart(SourceFile:543)
24      at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1260)
25      at android.app.Activity.performStart(Activity.java:6261)
26      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)
27      ... 9 more
28  java.lang.IllegalStateException: Fragment does not have a view
29      at android.support.v4.app.Fragment$1.onFindViewById(SourceFile:1922)
30      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1057)
31      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1248)
32      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1230)
33      at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(SourceFile:2042)
34      at android.support.v4.app.Fragment.performActivityCreated(SourceFile:1976)
35      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1092)
36      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1248)
37      at android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1230)
38      at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(SourceFile:2042)
39      at android.support.v4.app.FragmentController.dispatchActivityCreated(SourceFile:165)
40      at android.support.v4.app.FragmentActivity.onStart(SourceFile:543)
41      at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1260)
42      at android.app.Activity.performStart(Activity.java:6261)
43      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2389)
44      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
45      at android.app.ActivityThread.-wrap11(ActivityThread.java)
46      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
47      at android.os.Handler.dispatchMessage(Handler.java:102)
48      at android.os.Looper.loop(Looper.java:148)
49      at android.app.ActivityThread.main(ActivityThread.java:5443)
50      at java.lang.reflect.Method.invoke(Native Method)
51      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
52      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

知道这个异常与什么有关吗?

【问题讨论】:

  • 你没有为你的片段类提供任何视图
  • @VivekMishra 你的意思是我没有在片段的 onCreateView() 方法中返回任何视图,确切地说?
  • 是的,它清楚地写在你的堆栈跟踪中
  • 向我们展示您的活动 xml
  • @VivekMishra 我再次检查了代码,在我的片段的 OnCreateView() 方法中返回的视图中没有发现任何异常。

标签: android android-fragments illegalstateexception


【解决方案1】:

看起来您在 MainActivity 中使用了 Fragment,并且 onCreateView 的返回不是有效的视图(可能为 null)。

【讨论】:

  • 您确定在 onCreateView() 方法中返回 null 会导致此异常吗?另外,您认为什么是无效视图?
  • 完全不确定,可以尝试一下。也可能是未找到传递给 FragmentManager.add 的视图 ID、不是视图或不在现有根视图中(不是传递给 setContentView 的布局的子视图)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
  • 2020-01-01
  • 1970-01-01
  • 2013-06-30
  • 2020-05-02
  • 2012-11-28
  • 1970-01-01
相关资源
最近更新 更多