14

首先,我是安卓新手。我正在做一个应用程序,并且正在实现一个名为HoloEverywhere的库。该库在themes.xml 中使用库ActionBar Sherlock。我已将 ActionBar Sherlock 导入我的工作区,并将其添加到 HoloEverywhere。接下来,我已经将 HoloEverywhere 添加到我的项目中,但是当我尝试使用它时,出现错误(我尝试使用按钮):

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.

我将类的路径放在我的布局中,如下所示:

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

我如何解决这个问题并在我的项目中使用这个库?谢谢:) PS。对不起我的英语,我知道它不是很好。

4

4 回答 4

40

请按照以下步骤(取自此处的博客)添加ActionBarSherlock

  1. 下载.zip/.tgz 并解压
  2. 去eclipse并选择File->New-> Android Project
  3. 选择Create project from existing source然后browselibrary提取文件夹内的AndroidBarSherlock文件夹
  4. 构建目标应该是最新的(14 或 15),但您的 minSdkVersion 可以更少(7 或 8)
  5. Finish
  6. 右键单击新创建的项目并转到Properties.
  7. Android标题下,您应该看到一个Library带有复选框的部分IsLibrary。确保已检查。
  8. 右键单击 -> 在您希望AndroidBarSherlockAndroid标题下添加的项目上的属性,然后Library选择Add.
  9. 您应该会看到该ActionBarSherlock库,将其添加到您的项目中
  10. 最后,如果您使用的是兼容性支持,则需要删除该jar ,因为它包含在 ActionBarSherlock 中。

按照以下步骤添加HoloEverywhere

  1. 从 GitHub下载Zip 到您的计算机
  2. 解压文件夹
  3. 去eclipse并选择File->New-> Android Project
  4. 选择Create project from existing source然后browseHoloEverywhereLib提取文件夹内的文件夹
  5. Finish
  6. 右键单击新创建的项目并转到Properties.
  7. Android标题下,您应该看到一个Library带有复选框的部分IsLibrary。确保已选中并按Add之前添加的 library ActionBarSherlock

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

  1. 创建一个新的安卓项目
  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);
        }
    
    }
    
于 2012-06-04T21:51:12.333 回答
8

It seems that

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

cause an error.

change it:

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

resons here:

Github

correct!

于 2012-12-11T03:06:38.763 回答
4

我在我的项目中遇到了同样的错误,这就是我所做的,右键单击 HoloEverywhere (properties->android->library) 从列表中删除 ActionBarSherlock 然后通过单击添加重新添加 ActionBarSherlock 项目,然后清理项目,所有错误都会消失。

于 2012-09-15T06:40:26.460 回答
1

ActionBarSherlock 的创建者 Jake Wharton 在 Google+ 上宣布 ActionBarSherlock 的进一步开发已停止。ActionBarSherlock 4.4 是最后一个版本,可能会修复错误 - 但不会有任何新功能:

虽然未来几周可能会发布一两个 dot 版本,但 4.4 版正逐渐成为 The Last Release™。

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

正如我在holoeverywhere 问题论坛上询问并由开发人员回答的那样:

HoloEverywhere 自 v2.0 起与 ABS 没有任何依赖关系

因此,您不应再使用 ABS 并从项目中删除该库,并直接将其替换为 holoeverwhere 或使用 Google 支持库中的 ActionbarCompat。

于 2014-01-03T01:30:10.357 回答