2017-03-06 61 views
0

我有點卡在這個任務。我有一個應用程序顯示嵌入谷歌地圖的主要片段,現在我想用另一個片段替換它,當用戶單擊抽屜菜單列表中的發送按鈕時顯示一些圖表。片段調用導致應用程序沒有響應

當我點擊發送應用程序卡住了,給我討厭的「應用程序沒有響應」。但是,如果我將android:name字段更改爲相同的地圖片段,它將正常工作並顯示地圖。

主要業務段,其中i啓動地圖片段

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    if (toolbar != null) { 
     setSupportActionBar(toolbar); 
    } 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.activity_main); 
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.addDrawerListener(toggle); 
    toggle.syncState(); 


    mapsFragment = new MapsFragment(); 
    getSupportFragmentManager().beginTransaction() 
      .add(R.id.maincontainer,mapsFragment) 
      .commit(); 

    navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

} 

主要活動片段,其中i啓動圖表片段

public boolean onNavigationItemSelected(MenuItem item) { 
     // Handle navigation view item clicks here. 
     Snackbar snackbar; 
     Fragment fragment = null; 
     switch(item.getItemId()){ 
      case R.id.nav_manage: 
       snackbar = Snackbar 
         .make(coordinatorLayout, "manage", Snackbar.LENGTH_LONG); 
       snackbar.show(); 
       break; 
      case R.id.nav_share: 
       snackbar = Snackbar 
         .make(coordinatorLayout, "share", Snackbar.LENGTH_LONG); 
       snackbar.show(); 
       break; 
      case R.id.nav_send: 
       snackbar = Snackbar 
         .make(coordinatorLayout, "send", Snackbar.LENGTH_LONG); 
       snackbar.show(); 
       fragment = new ChartsFragment(); 
       break; 
      case R.id.nav_view: 
       snackbar = Snackbar 
         .make(coordinatorLayout, "view", Snackbar.LENGTH_LONG); 
       snackbar.show(); 
       break; 
     } 
     if(fragment != null){ 
      getSupportFragmentManager().beginTransaction() 
        .replace(R.id.maincontainer,fragment) 
        .commit(); 
     } 
     // Highlight the selected item has been done by NavigationView 
     item.setChecked(true); 
     // Set action bar title 
     //setTitle(item.getTitle()); 
     DrawerLayout drawer = (DrawerLayout) 
findViewById(R.id.activity_main); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 

MapsFragment的onCreate

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_maps, container, false); 
     SupportMapFragment mMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); 
     mMapFragment.getMapAsync(this); 
     mContext = getActivity(); 
     return rootView; 
    } 

ChartsFragment的onCreate

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_charts, container, false); 
    return rootView; 
} 

主要appbar XML

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    android:id="@+id/coordinator_layout_app_bar_main" 
    tools:context="com.fabio.gis.geotag.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_activity" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/place_marker" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="80dp" 
     android:layout_gravity="bottom|end" 
     android:layout_marginRight="16dp" 
     app:backgroundTint="@color/secondaryColorAccent" 
     app:elevation="6dp" 
     app:pressedTranslationZ="12dp" 
     android:src="@drawable/ic_marker" /> 
    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/send_positions" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     app:elevation="6dp" 
     app:backgroundTint="@color/colorAccent" 
     app:pressedTranslationZ="12dp" 
     android:layout_margin="16dp" 
     android:src="@drawable/ic_play_arrow_white_24dp" /> 
</android.support.design.widget.CoordinatorLayout> 

地圖片段

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map_ui" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:map="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.SupportMapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    </fragment> 
</RelativeLayout> 

Charts Fragment 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/charts_ui" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/charts" 
     android:name="com.fabio.gis.geotag.ChartsFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Hello World!" /> 

    </fragment> 
</RelativeLayout> 

我已經嘗試過更換

機器人:名字= 「com.fabio.gis.geotag.ChartsFragment」

類= 「com.fabio.gis.geotag.ChartsFragment」

沒什麼改變。

在此先感謝您的支持。我意識到我是Android的初學者,也許我正在爲一個愚蠢的新秀錯誤而苦苦掙扎。

過了一會兒,它留在ANR它給了我下面的堆棧跟蹤誤差

03-06 17:11:43.322 7033-7033/? E/AndroidRuntime:  at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
               at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
               at com.fabio.gis.geotag.ChartsFragment.onCreateView(ChartsFragment.java:20) 
               at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
               at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
               at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
               at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
               at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
               at com.fabio.gis.geotag.ChartsFragment.onCreateView(ChartsFragment.java:20) 
               at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
               at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
               at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
               at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
               at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 
               at com.fabio.gis.geotag.ChartsFragment.onCreateView(ChartsFragment.java:20) 
               at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1065) 
               at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268) 
               at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1370) 
               at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2415) 
               at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 
               at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) 
               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
               at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 
               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
               at android.view.LayoutInflater.inflate(LayoutInflater.java:426) 

              read: unexpected EOF! 
+0

可以請你發佈錯誤日誌 – rahul

+0

我發佈了一段時間後,它給了我stacktrace該應用程序在ANR,希望它可以幫助 – Fabio

回答

0

要敬啓者,錯誤是由在gradle這個文件中的一些矛盾庫引用版本造成的,導致可能的意外的運行時異常。

該問題已經在此thread

被攻克希望它可以在數小時保存到某人的未來。