添加ActionBarSherlock库会产生涉及android.support.v4的错误

时间:2013-01-22 19:37:34

标签: android eclipse actionbarsherlock

我现有的项目使用Fragments和FragmentPagerAdapters顺利运行。但是,当添加ActionBarSherlock库错误时,会出现。我找到了[另一个问题]同样的问题,但没有答案。

在将库添加到我的项目之前,它看起来像没有错误:

enter image description here

添加库后,我编辑AndroidManifest.xml以包含android:theme="@android:style/Theme.Sherlock",这也会在我的XML文件中产生错误。当我将其更改为android:theme="@style/Theme.Sherlock"时,XML文件中的错误消失但仍然无效,错误如下所示:

enter image description here

修改

我已完成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.jarandroid-support-v4.jar,但无济于事。当我尝试打开任何使用带有这些错误的XML文件的视图时,程序崩溃。

这是我选择Fix Build Path时的窗口:

enter image description here

3 个答案:

答案 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。