导入HoloEverywhere时出错

首先,我是Android新手。 我正在做一个应用程序,我正在实施一个名为HoloEverywhere的库。 这个库在themes.xml中使用库ActionBar Sherlock。 我已经导入到我的工作区ActionBar Sherlock,并将其添加到HoloEverywhere。 接下来,我添加了HoloEverywhere到我的项目,但是当我尝试使用它,我有一个错误(我试图使用一个button):

The following classes could not be instantiated: - com.WazaBe.HoloEverywhere.ButtonHolo (Open Class, Show Error Log) See the Error Log (Window > Show View) for more details. Tip: Use View.isInEditMode() in your custom views to skip code when shown in Eclipse. 

我把这个类的path放在我的布局中,像这样:

 <com.WazaBe.HoloEverywhere.ButtonHolo android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/text" /> 

我怎样才能解决这个问题,并在我的项目中使用这个库? 谢谢:) PS。 对不起,我的英文,我知道这不是很好。

按照下面的步骤(从这里博客)添加ActionBarSherlock

  1. 下载 .zip / .tgz并解压缩
  2. 去日食并selectFile->New-> Android Project
  3. selectCreate project from existing source ,然后browse到提取的AndroidBarSherlock文件夹中的library文件夹
  4. build立目标应该是最新的(14或15),但是你的minSdkVersion可以更less(7或8)
  5. Finish
  6. 右键单击新创build的项目,然后转到“ Properties
  7. Android标题下,您应该看到一个带有checkboxIsLibrary Library部分。 确保已选中。
  8. 右键单击 – >在你想在Android标题下添加AndroidBarSherlock的项目的AndroidBarSherlockLibrary部分selectAdd
  9. 您应该看到ActionBarSherlock库,将其添加到您的项目
  10. 最后,如果您使用兼容性支持 ,则需要删除该jar,因为它包含在ActionBarSherlock中。

按照以下步骤添加HoloEverywhere

  1. 从GitHub 下载 Zip到您的电脑
  2. 解压缩文件夹
  3. 去日食并selectFile->New-> Android Project
  4. selectCreate project from existing source ,然后browse到提取的文件夹内的HoloEverywhereLib文件夹
  5. Finish
  6. 右键单击新创build的项目,然后转到“ Properties
  7. Android标题下,您应该看到一个带有checkboxIsLibrary Library部分。 确保已选中并按下Add并且之前添加了库ActionBarSherlock

按照以下步骤将HoloEverywhere添加到您的项目

  1. 创build一个新的Android项目
  2. 右键单击项目 – >属性 – > Android – >添加,添加ActionBarSherlockHoloEverywhere
  3. Android Manifest更改为以下内容

    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Holo.Theme">

  4. 编辑你的main.xml以包含Holo主题小部件。

  5. 改变你的activity如下

     public class ChkActionBarSherlock extends SherlockActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } 

看起来

 android:theme="@style/Theme.HoloEverywhereDark.Sherlock" 

导致错误。

更改:

 android:theme="@style/Holo.Theme" 

在这里:

Github上

正确!

我在我的项目上有同样的错误,这是我所做的,右键单击HoloEverywhere(属性 – > android->库)从列表中删除ActionBarSherlock,然后通过单击添加重新添加ActionBarSherlock项目,之后,清理项目和所有的错误将消失。

ActionBarSherlock的创始人Jake Wharton在Google+上宣布,ActionBarSherlock的进一步发展已经停止。 ActionBarSherlock 4.4是最后一个版本,可能会修复错误 – 但不会有任何新function:

虽然在未来几周内可能会有一两个点的发布,但4.4版本正在成为The Last Release™。

https://plus.google.com/+JakeWharton/posts/F3HkWY9J8fK

当我在holoeverywhere问题论坛上问及由开发人员回答:

自2.0版以来,HoloEverywhere对ABS没有任何依赖性

所以你不应该再使用ABS了,从你的项目中删除这个库,直接replace它或者直接replace它,或者用谷歌支持库中的ActionbarCompatreplace它。