我现有的项目使用Fragments和FragmentPagerAdapters顺利运行。但是,当添加ActionBarSherlock
库错误时,会出现。我找到了[另一个问题]同样的问题,但没有答案。
在将库添加到我的项目之前,它看起来像没有错误:
添加库后,我编辑AndroidManifest.xml
以包含android:theme="@android:style/Theme.Sherlock"
,这也会在我的XML文件中产生错误。当我将其更改为android:theme="@style/Theme.Sherlock"
时,XML文件中的错误消失但仍然无效,错误如下所示:
修改
我已完成CommonsWare下面的答案中的建议,但我的代码仍然无法正常工作。所有错误消失,项目构建甚至在我的设备上启动。但是当我输入XML文件的图形布局时,我收到以下错误:
The following classes could not be found:
- android.support.v4.view.PagerTabStrip (Fix Build Path, Edit XML, Create Class)
这就是XML文件的样子。请注意,我的XML文件没有显示错误,但是当我进入Graphical Layout
标签时,会出现上述消息。我没有提到我使用ViewPager
,但我认为它不会有所作为。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:id="@+id/wavesMonitorMenuBar"
style="@android:style/ButtonBar"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/backButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/menu_back" />
<Button
android:id="@+id/readButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/menu_read" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/statusPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_above="@id/wavesMonitorMenuBar" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/pager_title_strip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:background="#9E9E9E"
android:textColor="#fff"
android:paddingTop="4dp"
android:paddingBottom="4dp" />
</android.support.v4.view.ViewPager>
</RelativeLayout>
从这里开始我选择了Fix Build Path
,但仍无法解决问题。我尝试选择library.jar
和android-support-v4.jar
,但无济于事。当我尝试打开任何使用带有这些错误的XML文件的视图时,程序崩溃。
这是我选择Fix Build Path
时的窗口:
答案 0 :(得分:3)
当您的控制台以红色告诉您时,您有两个名为android-support-v4.jar
的JAR,它们与实际文件不同 - 它们的大小或内容不同。因此,Android不知道你想要的两个JAR中的哪一个。
通常,简单的答案是从项目中删除JAR。 ActionBarSherlock有这个JAR,你的项目将选择那个作为库项目附加ActionBarSherlock的一部分。
答案 1 :(得分:2)
SherlockActionBar中的android-support-v4.jar太旧了(至少在我下载的项目中)并且它不包含PagerTabStrip。
我通过替换actionbarsherlock库项目中的支持库来解决它。
答案 2 :(得分:0)
SherlockActionBar在他的libs文件夹中有android-support-v4.jar。尝试从项目的lib文件夹中删除android-support-v4.jar,以便从Sherlock的项目中使用jar。