尝试通过v4兼容性使用DialogFragments会导致NoClassDefFoundError

时间:2012-04-25 17:00:46

标签: android noclassdeffounderror android-dialogfragment android-fragmentactivity

问候和致意,

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

  

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

既然如此,如何从一个简单的Activity中调用getSupportFragmentManager()而不将该活动变为FragmentActivity(无法工作)?或者我是否需要将活动变为FragmentActivity,但我需要进行一些其他更改才能使其有效?

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

提前感谢您的协助。

2 个答案:

答案 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()方法分别访问这些功能。“