问候和致意,
简短版本:我正在尝试在我的Android应用程序中使用DialogFragment,其中minSkdVersion为8(Android 2.2)。为了使用它们,我必须能够调用“getSupportFragmentManager()”。为了做到这一点,我尝试将调用Activity更改为FragmentActivity,这允许getSupportFragmentManager()在运行时解析,但是当尝试在运行时创建该intent时,我得到NoClassDefFoundError,因为应用程序无法解析上游的某些问题。它
W / dalvikvm(333):无法解析超类......
既然如此,如何从一个简单的Activity中调用getSupportFragmentManager()而不将该活动变为FragmentActivity(无法工作)?或者我是否需要将活动变为FragmentActivity,但我需要进行一些其他更改才能使其有效?
仅供记录:我已经将android-support-v4.jar添加到项目中(否则,我根本无法编译)。
提前感谢您的协助。
答案 0 :(得分:2)
由于FragmentActivity是无法找到的类,我想我知道问题是什么。你确定你的兼容性库包含在你的apk中吗?您可以使用dex2jar来检查这一点。您似乎需要将库移动到libs
文件夹,以便将它们包含在更新的Android工具修订版中。
答案 1 :(得分:1)
查看支持库的示例。它们从“FragmentActivity”扩展,以支持这些功能。
他们还写道,您必须扩展它才能使用支持库: http://developer.android.com/reference/android/support/v4/app/FragmentActivity.html
FragmentActivity:
“想要使用基于支持的Fragment和Loader API的活动的基类。
使用此类而不是新平台的内置片段和加载器支持时,必须使用 getSupportFragmentManager()和getSupportLoaderManager()方法分别访问这些功能。“