二进制XML文件第10行错误:充气类片段 [英] Binary XML file line #10: Error inflating class fragment

查看:298
本文介绍了二进制XML文件第10行错误:充气类片段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在项目中,我用三个标签来显示一个画面三项活动。
标签1 - 地图
结果表2 - 游戏
结果选项卡3 - Imageflipper
结果当我像地图系列选择标签--->游戏---> Imageflipper然后,它做工精细。
结果但是,当我选择回像地图的任何标签--->游戏---> Imageflipper --- >>游戏,然后告诉我无差错
结果二进制XML文件中第10行:错误充气类片段

In my project I use three tab to show three activities in single screen. Tab 1 - Map
Tab 2 - Games
Tab 3 - Imageflipper
When I select tabs in series like Map--->Games--->Imageflipper then It work fine.
But when I select back to any tab like Map--->Games--->Imageflipper--->>Games, Then it show me error-
Binary XML file line #10: Error inflating class fragment.

模拟器的屏幕快照:

http://s9.postimg.org/jdjsxnswf/Untitled.png

结果
    这是我的logcat中。
   结果


This is my logcat.

03-26 05:48:09.876: D/AndroidRuntime(1094): Shutting down VM
03-26 05:48:09.876: W/dalvikvm(1094): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
03-26 05:48:09.936: E/AndroidRuntime(1094): FATAL EXCEPTION: main
03-26 05:48:09.936: E/AndroidRuntime(1094): android.view.InflateException: Binary XML file line #10: Error inflating class fragment
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.example.image_changer.TopRatedFragment.onCreateView(TopRatedFragment.java:15)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:1264)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:672)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.view.ViewPager.populate(ViewPager.java:1012)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:523)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:495)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.view.ViewPager.setCurrentItem(ViewPager.java:476)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.example.image_changer.MainActivity1.onTabSelected(MainActivity1.java:82)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:570)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.android.internal.app.ActionBarImpl$TabImpl.select(ActionBarImpl.java:1067)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.android.internal.widget.ScrollingTabContainerView$TabClickListener.onClick(ScrollingTabContainerView.java:519)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.View.performClick(View.java:4202)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.View$PerformClick.run(View.java:17340)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.os.Handler.handleCallback(Handler.java:725)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.os.Handler.dispatchMessage(Handler.java:92)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.os.Looper.loop(Looper.java:137)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.app.ActivityThread.main(ActivityThread.java:5039)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at java.lang.reflect.Method.invokeNative(Native Method)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at java.lang.reflect.Method.invoke(Method.java:511)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at dalvik.system.NativeStart.main(Native Method)
03-26 05:48:09.936: E/AndroidRuntime(1094): Caused by: java.lang.IllegalArgumentException: Binary XML file line #10: Duplicate id 0x7f050010, tag null, or parent id 0x0 with another fragment for com.google.android.gms.maps.SupportMapFragment
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:285)
03-26 05:48:09.936: E/AndroidRuntime(1094):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676)
03-26 05:48:09.936: E/AndroidRuntime(1094):     ... 30 more
03-26 05:48:14.426: I/Process(1094): Sending signal. PID: 1094 SIG: 9
03-26 05:48:15.578: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:15.578: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:15.656: I/System.out(1203): you are in on create in main activity
03-26 05:48:16.306: D/dalvikvm(1203): GC_FOR_ALLOC freed 74K, 7% free 2616K/2812K, paused 51ms, total 53ms
03-26 05:48:16.576: D/dalvikvm(1203): GC_CONCURRENT freed 2K, 6% free 3025K/3200K, paused 111ms+102ms, total 262ms
03-26 05:48:16.736: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:16.736: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:16.746: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:16.776: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:16.966: D/libEGL(1203): loaded /system/lib/egl/libEGL_emulation.so
03-26 05:48:17.056: D/(1203): HostConnection::get() New Host Connection established 0x2a187918, tid 1203
03-26 05:48:17.376: D/libEGL(1203): loaded /system/lib/egl/libGLESv1_CM_emulation.so
03-26 05:48:17.407: D/libEGL(1203): loaded /system/lib/egl/libGLESv2_emulation.so
03-26 05:48:18.176: W/EGL_emulation(1203): eglSurfaceAttrib not implemented
03-26 05:48:18.997: D/OpenGLRenderer(1203): Enabling debug mode 0
03-26 05:48:18.997: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.018: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.026: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.176: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.186: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.218: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.218: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.226: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.226: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.226: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0  
03-26 05:48:19.436: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.436: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0
03-26 05:48:19.436: W/Trace(1203): Unexpected value from nativeGetEnabledTags: 0

通过点击logcat的包名相关的错误,它告诉我这些错误。

By clicking on package name related error in Logcat, It show me these error.

首先,在MainActivity1.java结果
    查看rootView = inflater.inflate(R.layout.map,集装箱,FALSE);

First in MainActivity1.java
View rootView = inflater.inflate(R.layout.map, container, false);

第二条在Topratedfragment.java结果
     viewPager.setCurrentItem(tab.getPosition());

Second in Topratedfragment.java
viewPager.setCurrentItem(tab.getPosition());

这是MainActivity1.java文件

This is MainActivity1.java file

package com.example.image_changer;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.FragmentTransaction;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Window;
import android.view.WindowManager;

public class MainActivity1 extends FragmentActivity implements
    ActionBar.TabListener {

private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Map", "Games", "Image flipper" };

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main1);
        /*MainActivity1.this.getWindow().setFlags(
                WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);*/
    getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#ee7b35")));


    System.out.println("you are in oncreate in mainactivity1");

    // Initilization
    viewPager = (ViewPager) findViewById(R.id.pager);
    actionBar = getActionBar();
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    viewPager.setAdapter(mAdapter);
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Adding Tabs
    for (String tab_name : tabs) {
        actionBar.addTab(actionBar.newTab().setText(tab_name)
                .setTabListener(this));
    }

    /**
     * on swiping the viewpager make respective tab selected
     * */
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            // on changing the page
            // make respected tab selected
            actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // on tab selected
    // show respected fragment view
    viewPager.setCurrentItem(tab.getPosition());
    System.out.println("you are in onTabreselected");
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    System.out.println("you are in onTabunselected");
}

}

这是我的TopRatedfragment.java文件

This is my TopRatedfragment.java file

package com.example.image_changer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class TopRatedFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.map, container, false);

    return rootView;
}
}

我试过这个解决方案 -
结果

I tried this solution-

在更改扩展 片段 FragmentActivity 中Topratedfragment.java那么它给我的错误 - 类型TopRatedFragment的方法onCreateView(LayoutInflater,ViewGroup中,包)必须覆盖或实现超方式删除重写形式为速战速决。
结果当我删除重写的符号把它给在Tabspageradapter.java类和错误错误说 - 类型不匹配:不能从TopRatedFragment转换到碎片和改变方法的返回类型为 TopRatedFragment ,可这对我来说并不实用。

When I change extends Fragment to FragmentActivity in Topratedfragment.java then it give me error- The method onCreateView(LayoutInflater, ViewGroup, Bundle) of type TopRatedFragment must override or implement a supertype method. Remove override notation as quick fix.
When I remove override notation it give a error in Tabspageradapter.java class and error says - Type mismatch: cannot convert from TopRatedFragment to Fragment and change method return type to TopRatedFragment and may be this is not useful to me.

结果

package com.example.image_changer;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class TabsPagerAdapter extends FragmentPagerAdapter {

public TabsPagerAdapter(FragmentManager fm){
 super(fm);
}

@Override
public Fragment getItem(int index) {
    // TODO Auto-generated method stub
    switch (index) {
    case 0:
        return new TopRatedFragment();


    case 1: 
        return new GamesFragment();

    case 2:
        return new MoviesFragment();

    }

    return null;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 3;
}
}

搜索结果
这是GameFragment.java类



This is GameFragment.java class

package com.example.image_changer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


public class GamesFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    //return super.onCreateView(inflater, container, savedInstanceState);
    View rootView = inflater.inflate(R.layout.fragment_games,container,false );


    return rootView;
}


}

搜索结果那么如何解决这个问题。感谢您的帮助。



Then how to solve this problem. Thanks for your help

推荐答案

在此TopRatedfragment.java code使用解决这个问题:
结果

Use of this code in TopRatedfragment.java solve this problem:

private static View view;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view != null) {
    ViewGroup parent = (ViewGroup) view.getParent();
    if (parent != null)
        parent.removeView(view);
}
try {
    view = inflater.inflate(R.layout.map, container, false);
} catch (InflateException e) {
    /* map is already there, just return view as it is */
}
return view;
}

这篇关于二进制XML文件第10行错误:充气类片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆