【问题标题】:Crash on New Activity's Call to OnCreate [duplicate]新活动对 OnCreate 的调用崩溃[重复]
【发布时间】:2018-05-28 02:01:33
【问题描述】:

在启动我的名为 Home Screen 的活动时,应用程序在尝试读取第 36 行的 XML 文件时崩溃,并出现以下错误:

    Binary XML file line #36: Error inflating class fragment

    <fragment
    android:name="com.example.myName.myApp.EventsFragment"
    android:id="@+id/events_frag"
    android:layout_width="match_parent"
    android:layout_height="464dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true" />

第一行是第 36 行,它在我的主屏幕活动 xml 文件中定义了一个片段。下面是到目前为止执行的堆栈跟踪。

    E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.myName.myApp, PID: 15937
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.braedanshigley.feelbettertogether/com.example.braedanshigley.feelbettertogether.HomeScreen}: android.view.InflateException: Binary XML file line #36: Binary XML file line #36: Error inflating class fragment
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
                  at android.app.ActivityThread.-wrap11(Unknown Source:0)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
                  at android.os.Handler.dispatchMessage(Handler.java:106)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6494)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
               Caused by: android.view.InflateException: Binary XML file line #36: Binary XML file line #36: Error inflating class fragment
               Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class fragment
               Caused by: java.lang.RuntimeException: com.example.braedanshigley.feelbettertogether.HomeScreen@d0dbff6 must implement OnFragmentInteractionListener
                  at com.example.braedanshigley.feelbettertogether.EventsFragment.onAttach(EventsFragment.java:83)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1372)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1659)
                  at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1905)
                  at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3715)
                  at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:114)
                  at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:374)
                  at android.support.v4.app.BaseFragmentActivityApi14.onCreateView(BaseFragmentActivityApi14.java:39)
                  at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:68)
                  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:780)
                  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
                  at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
                  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                  at com.example.braedanshigley.feelbettertogether.HomeScreen.onCreate(HomeScreen.java:24)
                  at android.app.Activity.performCreate(Activity.java:7009)
                  at android.app.Activity.performCreate(Activity.java:7000)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
                  at android.app.ActivityThread.-wrap11(Unknown Source:0)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
                  at android.os.Handler.dispatchMessage(Handler.java:106)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6494)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

【问题讨论】:

  • 你能发布崩溃堆栈跟踪吗?
  • @shhp 已添加!非常感谢您来看看。

标签: android xml


【解决方案1】:

您需要在您的HomeScreen. Java 活动中实现OnFragmentInteractionListener。由于您遇到崩溃,因此缺少该侦听器实现。

此日志明确指出:

Caused by: java.lang.RuntimeException: com.example.braedanshigley.feelbettertogether.HomeScreen@d0dbff6 must implement OnFragmentInteractionListener

【讨论】:

  • 非常感谢!现在我觉得不仔细看很傻:P
【解决方案2】:

您好,您的片段名称包正确吗? com.example.myName.myApp.EventsFragment 这个需要在 Fragment 类之上

【讨论】:

    猜你喜欢
    • 2016-06-07
    • 2020-06-15
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多