我正在尝试在我的项目中使用杰克·沃顿的ViewPagerIndicator库,我遵循了下面列出的简单教程:
http://viewpagerindicator.com/
但是当我尝试运行我的项目时,我总是得到一个ClassNotFoundException。
下面是我布局中的XML:
<android.support.v4.view.ViewPager
android:id="@+id/day_pager"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/titles"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />下面是我拥有的相应代码(dayPage是一种ViewPager类型)。
ArrayList<Integer> testData = new ArrayList<Integer>();
testData.add(12);
testData.add(13);
testData.add(22);
dayPage = (ViewPager) this.getActivity().findViewById(R.id.day_pager);
dayPage.setAdapter(new DayAdapter(testData));
//Bind the title indicator to the adapter
TitlePageIndicator titleIndicator = (TitlePageIndicator)this.getActivity().findViewById(R.id.titles);
titleIndicator.setViewPager(dayPage);到目前为止,testData中的值是垃圾。
完整的堆栈跟踪是:
08-25 22:32:23.420: E/AndroidRuntime(1710): FATAL EXCEPTION: main
08-25 22:32:23.420: E/AndroidRuntime(1710): android.view.InflateException: Binary XML file line #12: Error inflating class com.viewpagerindicator.TitlePageIndicator
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
08-25 22:32:23.420: E/AndroidRuntime(1710): at vt.finder.sherlock.ScheduleFragment.onCreateView(ScheduleFragment.java:50)
08-25 22:32:23.420: E/AndroidRuntime(1710): at vt.finder.sherlock.ScheduleFragment.onCreate(ScheduleFragment.java:30)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:835)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.view.ViewPager.populate(ViewPager.java:895)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.view.ViewPager.populate(ViewPager.java:772)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.View.measure(View.java:8313)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.View.measure(View.java:8313)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.View.measure(View.java:8313)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.View.measure(View.java:8313)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.View.measure(View.java:8313)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.os.Handler.dispatchMessage(Handler.java:99)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.os.Looper.loop(Looper.java:130)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.app.ActivityThread.main(ActivityThread.java:3683)
08-25 22:32:23.420: E/AndroidRuntime(1710): at java.lang.reflect.Method.invokeNative(Native Method)
08-25 22:32:23.420: E/AndroidRuntime(1710): at java.lang.reflect.Method.invoke(Method.java:507)
08-25 22:32:23.420: E/AndroidRuntime(1710): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-25 22:32:23.420: E/AndroidRuntime(1710): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-25 22:32:23.420: E/AndroidRuntime(1710): at dalvik.system.NativeStart.main(Native Method)
08-25 22:32:23.420: E/AndroidRuntime(1710): Caused by: java.lang.ClassNotFoundException: com.viewpagerindicator.TitlePageIndicator in loader dalvik.system.PathClassLoader[/data/app/vt.finder.sherlock-1.apk]
08-25 22:32:23.420: E/AndroidRuntime(1710): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
08-25 22:32:23.420: E/AndroidRuntime(1710): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
08-25 22:32:23.420: E/AndroidRuntime(1710): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.createView(LayoutInflater.java:471)
08-25 22:32:23.420: E/AndroidRuntime(1710): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
08-25 22:32:23.420: E/AndroidRuntime(1710): ... 37 more我将ViewPagerIndicator项目作为一个库导入到我的项目中,并且我仔细检查了包名是否完好无损。我在我的项目上做了一次清理,但是我仍然得到了类没有找到异常。我是不是遗漏了什么?
发布于 2012-08-26 11:22:07
许多人将其添加到库的文件夹中或导入它(这是不正确的)
相反,您需要将整个项目(源代码和所有资源)添加到库部分的properties/android对话框下(如下所示)
如果不确定执行了什么操作,请尝试删除对该库的所有引用,使其不在library或referenced library文件夹中,并且不会显示在properties/java build path - library选项卡下
然后通过属性/android对话框将整个项目添加回,进行一次干净的构建(有时两次,感谢eclipse),它应该可以正常工作。

发布于 2013-07-12 16:25:50
上面建议的步骤对我不起作用,但这确实起到了作用:
click on >右键单击项目、properties
https://stackoverflow.com/questions/12126194
复制相似问题