20

我想實現一個ViewPager與FragmentPagerAdapter,其中ViewPager本身位於片段內。我已經閱讀過文檔,應該可以使用最新的支持庫和嵌套片段。原則上我希望PagerAdapter使用根片段的子片段管理器。NoSuchMethodError getChildFragmentManager()

所以,我的項目使用ActionBarSherlock和SherlockFragments。由於與ActionBarSherlock捆綁在一起的支持庫根本沒有包含getChildFragmentManager()方法,因此我下載了最新的支持庫v4,並將其放置在ActionBarSherlock的libs文件夾以及我的項目中。有了這個改變,項目編譯好了,但是在第一次運行時,它會退出關於getChildFragmentManager()的NoSuchMethodError。我在這裏做錯了什麼?

(附註:我與Android 2.2這是我的最低目標平臺測試它。)

謝謝!

解決:我用我的項目和所有引用的庫中的最新版本替換了支持庫。然後我清理了我的項目,但是我忘記清理並重建引用的庫了......這導致了這種奇怪的行爲。

+0

您確定您擁有最新的兼容性軟件包(來自最新的SDK更新)嗎? – Luksprog

+1

嗨!是的,它支持庫發佈11 ... – Peter

回答

0

解決:我用我的項目和所有引用的庫中的最新版本替換了支持庫。然後我清理了我的項目,但是我忘記清理並重建引用的庫了......這導致了這種奇怪的行爲。

4

確保沒有引用的庫使用Support Library v13。如果只有v13庫將用於所有引用使用v13的項目的項目,這似乎會干擾getChildFragmentManager()方法。有關更多信息,請參閱THIS QUESTION以瞭解更多信息,並且在整個工作區執行Project-> Clean時(假設您使用的是Eclipse),請注意控制檯打印出來。

我和你有同樣的問題,但是一旦我從所引用的五個庫中的一箇中移除了v13庫,它就解決了。

+0

嗨!謝謝你的建議!但是,我只在我的項目和引用庫中使用支持包v4。無論如何,你的建議給了我最終解決問題的線索,非常感謝! – Peter

+0

@Peter酷。 =)什麼是實際問題? – Qw4z1

+3

嗨!實際的問題是,雖然我更改了我的項目庫和參考庫中的庫資源,但我沒有清理並重新編譯所有庫,只有我的應用程序。我只是忘了它。然後,儘管我的應用程序編譯成功,但在運行時的某個時候,它並未找到getChildFragmentManager()方法,因爲我使用的庫仍然使用以前版本的支持包進行編譯。 – Peter

0

解決這個問題的唯一方法就是用最後一個android-support-v4庫更新ActionBarSherlock,這個版本是19.1。您可以從Android Manager上載它。之後,用這個改變重新編譯apk,你會得到這個方法。