我已经尝试在这里和其他地方查看所有其他NoClassDefFoundError线程,但它们似乎都是一个不同的问题。
我的活动是指自定义FragmentPagerAdapter - 我们称之为MyFragmentPagerAdapter。
活动引用它:
MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(getFragmentManager());
ViewPager viewPager = (ViewPager) findViewById(R.id.form_pager);
viewPager.setAdapter(pagerAdapter);
这一切似乎都在Eclipse中编译和构建完美。 Eclipse当然可以找到所有类 - 它自动为我填充import语句。
然而,当我尝试在Android(模拟器或设备)中运行该类时,我得到了MyFragmentPagerAdapter的NoClassDefFoundError,并且(当然)应用程序崩溃了。
我尝试删除设备上的APK并重新安装,以防这是部署问题,但它没有帮助。
这与某些第三方库无关 - 它是我自己的类,它无法找到!
我也尝试过“清理”项目。
我已经解压缩了apk并检查了
的输出dexdump classes.dex | grep PagerAdapter
并且在那里有对我的类的引用,所以我只能假设已编译的类正在使用它而不是apk - 这让我更加困惑。
答案 0 :(得分:0)
NoClassDef引用引用的类(在本例中为#34; MyFragmentPagerAdapter")而不是类本身(这是ClassNotFoundException)。
检查班级中的导入" MyFragmentPagerAdapter"并确保它们都在您的Android应用程序的类路径中,即通过检查libs文件夹和(最终)您在项目中引用的其他Android库。
希望这有帮助。