2014-03-26 6 views
0

프로젝트에서 세 개의 탭을 사용하여 한 화면에 세 가지 활동을 표시합니다. 탭 1 -지도
탭 2 - 게임
탭 3 - Imageflipper
내가지도 ---> 게임 ---> Imageflipper 같은 일련의 탭을 선택한 다음 그것은 잘 작동합니다.
그러나 Map ---> Games ---> Imageflipper ---> Games와 같은 탭으로 돌아 가면 오류가 표시됩니다.
이진 XML 파일 행 # 10 : 클래스 조각을 부 풀리는 중 오류가 발생했습니다. 에뮬레이터의이진 XML 파일 라인 # 10 : 클래스 조각을 부 풀리는 중 오류가 발생했습니다.

스크린 샷 :

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


이 내 로그 캣입니다.

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 

로그 캣의 패키지 이름 관련 오류를 클릭하면, 그것은 나에게 이러한 오류를 보여줍니다. 이 MainActivity1.java가

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
viewPager.setCurrentItem(tab.getPosition());

에서

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

둘째이 내 TopRatedfragment.java 파일

입니다

나는 내가 다음 날 The method onCreateView(LayoutInflater, ViewGroup, Bundle) of type TopRatedFragment must override or implement a supertype method를 오류 - 줄 Topratedfragment.java에서 FragmentActivityextendsFragment을 변경하면이

을 솔루션 - 시도했다. 빠른 수정으로 Remove override notation.
대체 표기법을 제거하면 Tabspageradapter.java 클래스에서 오류가 발생하고 오류가 발생합니다 - 형식 불일치 : TopRatedFragment에서 Fragment로 변환 할 수없고 메서드의 반환 형식을 TopRatedFragment으로 변경할 수없고 유용하지 않을 수 있습니다.

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; 
} 
} 




이 문제를 해결하는 방법을 다음

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; 
} 


} 



GameFragment.java 클래스

입니다. 당신의 도움이

답변

5

사용

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; 
} 
+1

어 오, 정적 VI : TopRatedfragment.java에서이 코드는이 문제를 해결하기 ews는 메모리 누수가 있음을 의미합니다. – Shujito

+0

지난 4 시간 동안의 해결책을 찾고있었습니다. 그런데 왜 작동합니까? 가장 이상한 일은 몇주 동안 잘 작동했다가 인터넷에 연결되어 작동을 멈췄다는 것입니다. – Isaac

0
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 

주셔서 감사합니다 당신은 XML을 bieng 오류에 대한 절대적으로 옳다,하지만 당신은 이미 스택에 들고 안드로이드 새로운 조각을 만드는 때문.당신이

FragmentManager fman=getFragmentManager(); 

fman.popBackStack(); 

이 itll는 더 정확한 코드에 대한 이러한 라인을 따라 뭔가 ....가 수 FragmentManager를 사용하려면 대신 새로운 fragemtn을 만드는

....의

Fragment fragment = (Fragment) getFragmentManager(). 
        .findFragmentById(R.your id here); 
       if (fragment != null && fragment.isInLayout()) { 

        fman.beginTransaction().show(fragment) 
       } else { 
        Fragment fragment = (Fragment) getFragmentManager().beginTransaction().add(your container-the file the error is coming from that holds all you fragments, fragment) 
         fman.beginTransaction().show(fragment) 

       } 
관련 문제