2015-02-05 3 views
3

я с тремя фрагментами в одной деятельности и обработали backpress в деятельности .На назад нажмите в одном фрагменте (CallingFragment) он загружает DialerFragment как я добавил его backstack при загрузке CallingFragement и давая это журналы. Скажите, пожалуйста, почему это происходит?Что касается фрагментов сделок

ЗАГРУЗКИ ВЫЗОВА ФРАГМЕНТ:

void launchCallingFrag(String number, String name ,long time , boolean isongoing,String price) 
    { 
     String calleename= name; 
     if(calleename==null) 
     calleename=CommonUtility.getContactDisplayNameByNumber(number, context); 

     callingScreenFragment.setNumber(number,calleename ,time,isongoing , price); 
     ft = getSupportFragmentManager().beginTransaction(); 
     ft.replace(R.id.dial_fragment, callingScreenFragment, CALLING_FRAGMENT_TAG); 

     dialerFragment = (DialerFragment)getSupportFragmentManager().findFragmentByTag(DIALER_FRAGMENT_TAG); 

     ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 

      ft.addToBackStack(DIALER_FRAGMENT_TAG); 


     ft.commit(); 
     overridePendingTransition(R.anim.animation1, R.anim.animation2); 

    } 

BACKPRESS:

@Override 
public void onBackPressed() { 
Log.e("back press called ",""+getSupportFragmentManager().getBackStackEntryCount()); 
dialerFragment = (DialerFragment)getSupportFragmentManager().findFragmentByTag(DIALER_FRAGMENT_TAG); 
if (dialerFragment!=null&&dialerFragment.isVisible()) { 
// add your code here 
Log.e("dialer fragment","dialer fragment "); 
dialerFragment.onBackPress(); 
} 
else { 

callingScreenFragment = (CallingScreenFragment) getSupportFragmentManager().findFragmentByTag(CALLING_FRAGMENT_TAG); 
if (callingScreenFragment!=null&&callingScreenFragment.isVisible()) { 

Log.e("calling fragment", "calling fragment "); 

callingScreenFragment.onBackPress(fromNotification); 

} 
else { 
recentDetailFragment = (RecentDetailFragment) getSupportFragmentManager().findFragmentByTag(LOG_DETAILS_FRAGMENT_TAG); 
if (recentDetailFragment!=null&&recentDetailFragment.isVisible()) { 
Log.e("recent fragment","recent fragment "); 
recentDetailFragment.onBackPress(); 
} 
else { 
super.onBackPressed(); 
} 
} 

} 

пиловочник:

02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.addTargets 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.addTransitionTargets 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.beginDelayedTransition 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.captureExitingViews 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve virtual method 12194: Landroid/view/ViewGroup;.isTransitionGroup()Z 
    02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.cleanupTransitions 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.967 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.cloneTransition 
    02-05 17:17:04.967 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.977 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.excludeTarget 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve virtual method 12022: Landroid/view/View;.getTransitionName()Ljava/lang/String; 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve virtual method 12022: Landroid/view/View;.getTransitionName()Ljava/lang/String; 
    02-05 17:17:04.977 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.mergeTransitions 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.977 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.removeTargets 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.977 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.transition.Transition', referenced from method android.support.v4.app.FragmentTransitionCompat21.setEpicenter 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve check-cast 1450 (Landroid/transition/Transition;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to find class referenced in signature (Landroid/transition/Transition;) 
      02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$3; (1449) 
      02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$3;' failed 
    02-05 17:17:04.977 10280-10280/com.myapp E/dalvikvm﹕ Could not find class 'android.support.v4.app.FragmentTransitionCompat21$3', referenced from method android.support.v4.app.FragmentTransitionCompat21.setSharedElementEpicenter 
    02-05 17:17:04.977 10280-10280/com.myapp W/dalvikvm﹕ VFY: unable to resolve new-instance 422 (Landroid/support/v4/app/FragmentTransitionCompat21$3;) in Landroid/support/v4/app/FragmentTransitionCompat21; 
    02-05 17:17:04.987 10280-10280/com.myapp W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$1; (1449) 
      02-05 17:17:04.987 10280-10280/com.myapp W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$1;' failed 
    02-05 17:17:04.987 10280-10280/com.myapp W/dalvikvm﹕ Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$3; (1449) 
      02-05 17:17:04.987 10280-10280/com.myapp W/dalvikvm﹕ Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$3;' failed 

ответ

3

Неудачный Это связано с ошибками в библиотеке android.support.v4, которые еще не были разрешены (на дату ответа).

По сути, библиотека поддержки использует API-интерфейсы API 19 и 21, даже при работе на устройствах, которые не имеют достаточно высоких уровней API. Это очень серьезная (и даже шокирующая) ошибка, поскольку целая коллекция библиотек поддержки Android предназначена для изоляции приложений от различий в уровне API!

В вашем случае вы, по-видимому, работаете на устройстве с уровнем API ниже 19, то есть когда был введен весь пакет android.transition.

Связанные темы для Android: 77670 и 89244. Возможно, вы захотите посетить эти проблемы и пометить их, и/или добавить новую проблему.

+0

У меня эта проблема на устройстве с интерфейсом API 19 (Android 4.4.2). –

+0

Ваш журнал показывает, что 'android.transiiton.Transaction', который был введен в API 19, не найден. Это должно означать, что среда выполнения находится ниже уровня 19. Если вы просто временно используете класс 'Transition' в своем коде, вызывает ли это исключение? – cybersam

Смежные вопросы