【问题标题】:NoSuchMethodError getChildFragmentManager()NoSuchMethodError getChildFragmentManager()
【发布时间】:2013-01-17 11:45:51
【问题描述】:

我正在尝试使用 FragmentPagerAdapter 实现 ViewPager,其中 ViewPager 本身位于片段内。我在文档中读到应该可以使用最新的支持库和使用嵌套片段。主要我希望 PagerAdapter 使用根片段的子片段管理器。

所以,我的项目使用 ActionBarSherlock 和 SherlockFragments。由于与 ActionBarSherlock 捆绑的支持库根本不包含 getChildFragmentManager() 方法,因此我下载了最新的支持库 v4 并将其放在 ActionBarSherlock 和我的项目的 libs 文件夹中。通过此更改,项目可以正常编译,但在第一次运行时,它会以关于 getChildFragmentManager() 的 NoSuchMethodError 退出。我在这里做错了什么?

(P.s. 我正在使用 Android 2.2 进行测试,这是我的目标最低平台。)

谢谢!

已解决:我将项目和所有引用库中的支持库替换为最新版本。然后我清理了我的项目,但是我也忘了清理和重建引用的库......这导致了这种特殊的行为。

【问题讨论】:

  • 你确定你有最新的兼容包(来自最新的 SDK 更新)?
  • 嗨!是的,它支持库版本 11...

标签: android android-fragments actionbarsherlock android-support-library android-nested-fragment


【解决方案1】:

确保您引用的库均未使用 Support Library v13。如果您这样做,将在所有引用使用 v13 的项目中使用 v13 库,这似乎会干扰 getChildFragmentManager() 方法。请参阅THIS QUESTION 了解更多信息,并在对整个工作区执行 Project->Clean 时注意控制台打印输出(假设您使用的是 Eclipse)。

我遇到了和你一样的问题,但是在我从引用的五个库之一中删除了 v13 库后问题得到了解决。

【讨论】:

  • 嗨!谢谢您的建议!但是,我只在我的项目和引用的库中使用支持包 v4。无论如何,您的建议给了我最终解决问题的线索,非常感谢!
  • @Peter Cool。 =) 真正的问题是什么?
  • 嗨!实际的问题是,虽然我更改了项目和引用库中的库资源,但我并没有清理和重新编译所有库,只有我的应用程序。我只是忘记了它。然后,虽然我的应用程序编译成功,但在运行时的某个时刻,它没有找到 getChildFragmentManager() 方法,因为我使用的库仍然是使用以前版本的支持包编译的。
【解决方案2】:

解决此问题的唯一方法是使用最后一个 android-support-v4 库(即 19.1)更新 ActionBarSherlock。您可以从 Android Manager 上传它。之后使用此更改重新编译 apk,您将获得该方法。

【讨论】:

    【解决方案3】:

    已解决:我将项目和所有引用库中的支持库替换为最新版本。然后我清理了我的项目,但是我也忘了清理和重建引用的库......这导致了这种特殊的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多