我已经尝试在这里和其他地方查看所有其他NoClassDefFoundError线程,但它们似乎都是一个不同的问题。
我的activity引用了一个自定义的FragmentPagerAdapter -让我们称之为MyFragmentPagerAdapter。
该活动使用以下方式引用它:
MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(getFragmentManager());
ViewPager viewPager = (ViewPager) findViewById(R.id.form_pager);
viewPager.setAdapter(pagerAdapter);
这一切似乎都可以在Eclipse中很好地编译和构建。Eclipse当然可以找到所有的类-它自动为我填充了import语句。
然而,当我尝试在安卓(模拟器或设备)中运行这个类时,我得到了一个用于MyFragmentPagerAdapter的NoClassDefFoundError,(当然)应用程序崩溃了。
我尝试删除设备上的APK并重新安装,以防它是一个部署问题,但没有帮助。
这与一些第三方库无关--它找不到的是我自己的类!
我也尝试过“清理”这个项目。
我已经提取了apk并检查了
dexdump classes.dex | grep PagerAdapter
其中有对我的类的引用,所以我只能假设编译后的类得到的是它,而不是apk --这让我更加困惑。
发布于 2014-06-01 13:40:06
NoClassDef引用的是类,这些类是由您的类(在本例中是"MyFragmentPagerAdapter")引用的,而不是类本身(即ClassNotFoundException)。
检查"MyFragmentPagerAdapter“类中的导入,并确保它们都在安卓应用程序的类路径中,即检查libs文件夹和(最终)项目中引用的其他安卓库。
希望这能有所帮助。
https://stackoverflow.com/questions/23980442
复制相似问题