【问题标题】:Trying to use DialogFragments via v4 compatability causes NoClassDefFoundErrors尝试通过 v4 兼容性使用 DialogFragment 会导致 NoClassDefFoundError
【发布时间】:2012-04-25 17:00:46
【问题描述】:

问候和问候,

短版:我正在尝试在我的 Android 应用程序中使用 DialogFragment,该应用程序的 minSkdVersion 为 8 (Android 2.2)。为了使用它们,我必须能够调用“getSupportFragmentManager()”。为了做到这一点,我尝试将调用 Activity 更改为 FragmentActivity,它允许 getSupportFragmentManager() 在运行时解析,但是当尝试在运行时创建该意图时,我得到一个 NoClassDefFoundError,因为应用程序无法解析上游的某些东西它

W/dalvikvm(333):无法解析超类...

既然如此,我怎样才能从一个简单的 Activity 调用 getSupportFragmentManager() 而不使该 Activity 成为 FragmentActivity (它无法工作)?还是我需要将 Activity 变成 FragmentActivity,但我需要进行一些其他更改才能使其正常工作?

仅作记录:我已经将 android-support-v4.jar 添加到项目中(否则我根本无法编译)。

提前感谢您的帮助。

【问题讨论】:

  • 完整的日志内容是什么? W/dalvikvm(333): Unable to resolve superclass... 不是很有帮助。
  • 04-25 08:53:14.298: W/dalvikvm(333): 无法解析 Lcom/.../android/.../ActiveTracking 的超类; (23)
  • 啊,原来FragmentActivity是找不到的类。您确定您的兼容性库包含在您的 apk 中吗?您可以使用 dex2jar 来检查这一点。看来您需要将您的库移动到 libs 文件夹,以便它们包含在 android 工具的较新版本中。
  • 确实!谢谢你,dmon。你能帮我一个大忙吗?您会将其发布为答案,以便我给予您信任吗? ^_^
  • 我喜欢帮忙,特别是当他们喜欢我的时候:)

标签: android noclassdeffounderror android-dialogfragment android-fragmentactivity


【解决方案1】:

既然 FragmentActivity 是找不到的类,我想我知道问题出在哪里了。您确定您的兼容性库包含在您的 apk 中吗?您可以使用 dex2jar 来检查这一点。您似乎需要将您的库移动到 libs 文件夹,以便它们包含在 android 工具的较新版本中。

【讨论】:

  • 谢谢,DMON。我很感激你的帮助。我确实做到了,现在它正在工作。
【解决方案2】:

查看支持库的示例。它们从“FragmentActivity”扩展以支持这些功能。

他们还写道,您必须扩展它才能使用支持库: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html

片段活动:

“要使用基于支持的 Fragment 和 Loader API 的 Activity 的基类。

当使用这个类而不是新平台的内置片段和加载器支持时,您必须使用 getSupportFragmentManager() 和 getSupportLoaderManager() 方法分别访问这些功能。"

【讨论】:

  • 我确实在用这个,androiddeveloper。这就是我遇到我最初提到的 NoClassDefFoundError 的原因。
  • 我知道 - 这就是为什么我给你链接(和引用)来阅读。它说你需要扩展这个类才能使用 API ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多