【安卓开发报错解决】使用Fragment报错——Binary XML file line #0 : Error inflating class顺利解决

    使用安卓开发移动应用,出现各种问题,每每让我感到绝望不堪。

    在使用安卓开发APP的时候,经常会需要用Fragment来实现更好看的功能。我拿着《第一行代码》边看边学习Fragment如何实现。然而,在简单的看完书上的内容之后,在手动重现书上的代码的时候,就遇见了很狗血的事情——实现不了!

    简直剧毒。

    最简单的Fragment实现套路,按照《第一行代码》上所述,步骤就是——先写好一个Activity,然后新建一个或多个Fragment,之后在Activity的layout中加载Fragment的布局,然后在Activity在启动自己的布局的时候,实际上就是调用了Fragment的java文件进行加载。

    道理我都懂。

    我用一个Fragment实现以下,结果都tm闪退,同时logcat中报错是这个图——

 Process: biubiubiu.fragmentproject, PID: 31596
                                                                           java.lang.RuntimeException: Unable to start activity ComponentInfo{biubiubiu.fragmentproject/biubiubiu.fragmentproject.MainActivity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class fragment
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2449)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2509)
                                                                               at android.app.ActivityThread.access$1000(ActivityThread.java:153)

                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)


    尽情的百度。

    然而这种报错,是很tm泛泛而谈的。我根本搜集不到太多的关于Fragment的使用而产生这样的报错 的解决方案。都是诸如一些资源放置、命名等导致这个报错。没什么软用。

    以下是我搜集到的两个有可能产生这个BUG的Fragment设置要点——

     博客一:https://blog.csdn.net/qq_31071805/article/details/52299378

     博客二:https://blog.csdn.net/headshot1/article/details/52940384

    这么说吧。两位博客,讲述的大致是:Fragment对应的包名不要弄错、Fragment的布局文件配置Java文件包名要补全等等。

    然而,我把Fragment的引用包名先全部改成supportv4以后没用,再全部改成android.app.Fragment,也没用。

    反正就是没用。

    最后搜寻到这个博客:https://blog.csdn.net/u014581901/article/details/60141113

    我@#¥...!  我有用了!我能跑Fragment了!

    也就是说,我调用Fragment,我tm还需要在调用Fragment的那个Activity中,使用接口

implements BlankFragment.OnFragmentInteractionListener

    最搞笑的,是我必须使用

class MainActivity extends AppCompatActivity

    不能继承Activity,要继承AppCompatAcitvity。

    然后再实现接口的内容——

public void onFragmentInteraction(Uri uri){   //实现OnFragmentInteractionListener接口中的函数

    }

        好一个AndroidStudio!和《第一行代码》并不相符。

        报错机制还这么蠢,报的什么东西也不知道。心很累。

        终归是解决了这个问题,成功调用了Fragment不闪退、能显示了。。。。。

猜你喜欢

转载自blog.csdn.net/Hide_in_Code/article/details/79756383