簡體   English   中英

當構建目標使用新 API 級別 21 時,Android 項目片段轉換拋出異常

[英]Android Project Fragment Transition throwing Exception when Build target used New API Level 21

例外是:

“無法解析 L android/support/v4/app/FragmentTransitionCompat21$1 的超類;”

我正在嘗試使用以下函數從片段管理器的片段返回堆棧中彈出最后一個片段轉換:

getSupportFragmentManager().popBackStack(); ,

當我這樣做時,函數調用拋出以下錯誤。 僅當我使用 New Android API Version 21 作為構建目標時才會發生這種情況。

相同的代碼與舊 API 版本 20 一起工作正常。

錯誤:找不到“android.support.v4.app.FragmentTransitionCompat21$1”的超類

它似乎是“FragmentTransitionCompat21”基類中的一個內部類。

錯誤:

W/dalvikvm(1356): Unable to resolve superclass of Landroid/support/v4/app/FragmentTransitionCompat21$1; (1082)

W/dalvikvm(1356): Link of class 'Landroid/support/v4/app/FragmentTransitionCompat21$1;' failed

E/dalvikvm(1356): Could not find class 'android.support.v4.app.FragmentTransitionCompat21$1', referenced from method android.support.v4.app.FragmentTransitionCompat21.setEpicenter

W/dalvikvm(1356): VFY: unable to resolve new-instance 358 (Landroid/support/v4/app/FragmentTransitionCompat21$1;) in Landroid/support/v4/app/FragmentTransitionCompat21;

有沒有人發現類似的錯誤? 請幫助如何解決這個問題,謝謝。

它肯定引用了 API 21 第 4 版支持庫,如果您在使用 ObjectAnimator 更改它的事務上設置了任何動畫,也請從 R.anim 引用您的動畫,否則它會通過並出錯。

在前幾天我也遇到過這種錯誤,然后我嘗試使用 API 22 而不是 android.support.v4.app.FragmentTransition 的 v7 appcompat。

你試過這個嗎

導入 android.app.FragmentTransaction;

有代碼片段。

FragmentManager fm = getFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
fragmentTransaction.addToBackStack("");
fragmentTransaction.replace(R.id.content_frame, Fr);
fragmentTransaction.commit();

如果您試圖從片段內的堆棧中彈出片段,您應該使用 getChildFragmentManager 而不是 getfragmentManager。

[https://stackoverflow.com/questions/6847460/fragments-within-fragments][1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM