【问题标题】:How do I fix the error Binary XML file line #26: Error inflating class fragment?如何修复错误 Binary XML file line #26: Error inflating class fragment?
【发布时间】:2016-04-09 18:27:20
【问题描述】:
public class MainActivity extends ActionBarActivity
        implements NavigationDrawerCallbacks {

    /**
     * Fragment managing the behaviors, interactions and presentation of the navigation drawer.
     */
    private NavigationDrawerFragment mNavigationDrawerFragment;
    private Toolbar mToolbar;
    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
        setSupportActionBar(mToolbar);

        mNavigationDrawerFragment = (NavigationDrawerFragment)
                getSupportFragmentManager().findFragmentById(R.id.fragment_drawer);

        // Set up the drawer.
        mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar);
        // populate the navigation drawer



    }

    @Override
    public void onNavigationDrawerItemSelected(int position) {
        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        switch (position) {
            case 0:
                salahtimesparser salahfragment = new salahtimesparser();
                fragmentTransaction.replace(R.id.container, salahfragment);
                break;
            case 1:
                Compass CompassFragment = new Compass();
                fragmentTransaction.replace(R.id.container, CompassFragment);
                break;
            case 2:
                YouTubeFragment You = new YouTubeFragment();
                fragmentTransaction.replace(R.id.container, You);
                break;
            case 3:
                MapsFragment Maps = new MapsFragment();
                fragmentTransaction.replace(R.id.container, Maps);
                break;
        }
        fragmentTransaction.commit();
        // update the main content by replacing fragments
        Toast.makeText(this, "Menu item selected -> " + position, Toast.LENGTH_SHORT).show();
    }


    @Override
    public void onBackPressed() {
        if (mNavigationDrawerFragment.isDrawerOpen())
            mNavigationDrawerFragment.closeDrawer();
        else
            super.onBackPressed();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        if (!mNavigationDrawerFragment.isDrawerOpen()) {
            // Only show items in the action bar relevant to this screen
            // if the drawer is not showing. Otherwise, let the drawer
            // decide what to show in the action bar.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        return super.onCreateOptionsMenu(menu);
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

日志猫:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kazam.salahtimes/com.kazam.salahtimes.MainActivity}: android.view.InflateException: Binary XML file line #26: Error inflating class fragment
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
                                                                        at android.app.ActivityThread.access$900(ActivityThread.java:172)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:145)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5832)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at java.lang.reflect.Method.invoke(Method.java:372)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                                     Caused by: android.view.InflateException: Binary XML file line #26: Error inflating class fragment
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770)
                                                                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:366)
                                                                        at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
                                                                        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                                        at com.kazam.salahtimes.MainActivity.onCreate(MainActivity.java:30)
                                                                        at android.app.Activity.performCreate(Activity.java:6221)
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
                                                                        at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:145) 
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                        at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
                                                                     Caused by: java.lang.NullPointerException
                                                                        at java.lang.VMClassLoader.findLoadedClass(Native Method)
                                                                        at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:362)
                                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:499)
                                                                        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                        at android.support.v4.app.Fragment.isSupportFragmentClass(Fragment.java:454)
                                                                        at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2252)
                                                                        at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120)
                                                                        at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
                                                                        at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
                                                                        at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:80)
                                                                        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:740)
                                                                        at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) 
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:511) 
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:415) 
                                                                        at android.view.LayoutInflater.inflate(LayoutInflater.java:366) 
                                                                        at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276) 
                                                                        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
                                                                        at com.kazam.salahtimes.MainActivity.onCreate(MainActivity.java:30) 
                                                                        at android.app.Activity.performCreate(Activity.java:6221) 
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) 
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611) 
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723) 
                                                                        at android.app.ActivityThread.access$900(ActivityThread.java:172) 
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:145) 
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5832) 
                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                        at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 

我想知道是否有人有此修复的解决方案或我如何解决此问题?

有解决办法吗?

我目前正在使用 Android Studio,我所有的 Fragment 导入都是 import android.support.v4.app 而不是其他 1。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@+id/toolbar_actionbar"
            layout="@layout/toolbar_default"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <FrameLayout
            android:id="@+id/container"
            android:clickable="true"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </LinearLayout>
    <!-- android:layout_marginTop="?android:attr/actionBarSize"-->
    <fragment
        android:id="@+id/fragment_drawer"
        android:layout_marginTop="@dimen/abc_action_bar_default_height_material"

        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:layout="@layout/fragment_navigation_drawer"/>
</android.support.v4.widget.DrawerLayout>

【问题讨论】:

  • 发布你的xml代码..确定有问题
  • 我有哪 1 个负载?
  • @Tanimreja 我已经上传了与课程相关的xml文件。
  • 我已经解决了这个问题,谢谢 tahimreja 告诉我它是我的 xml 文件

标签: java android android-layout android-fragments android-studio


【解决方案1】:

如果您在布局 XML 中使用 fragment 标记,则必须在 android:name 属性中提供片段类名称。

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2017-09-13
    • 2013-10-07
    • 2015-05-01
    • 2014-06-18
    • 2015-01-13
    • 2014-01-13
    • 2013-09-10
    相关资源
    最近更新 更多