导入HoloEverywhere时出错

时间:2012-05-15 20:38:38

标签: android themes actionbarsherlock android-holo-everywhere

首先,我是Android新手。 我正在做一个应用程序,我正在实现一个名为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 个答案:

答案 0 :(得分:39)

请按照以下步骤(摘自博客here)添加ActionBarSherlock

  1. Download .zip / .tgz并将其解压缩
  2. 转到eclipse并选择File->New-> Android Project
  3. 选择Create project from existing source,然后选择browse到解压缩library文件夹中的AndroidBarSherlock文件夹
  4. Build Target应该是最新的(14或15),但你的minSdkVersion可以更少(7或8)
  5. Finish
  6. 右键单击新创建的项目,然后转到Properties
  7. Android标题下,您应该看到Library的一个部分,其中包含IsLibrary复选框。确保已选中。
  8. 右键单击 - &gt;您希望在AndroidBarSherlock标题和Android部分下添加Library的项目的专家选择Add
  9. 您应该看到ActionBarSherlock库,将其添加到您的项目中
  10. 最后,如果您使用兼容性支持,则需要删除 jar ,因为它已包含在ActionBarSherlock中。
  11. 按照以下步骤添加HoloEverywhere

    1. Download从GitHub邮寄到您的计算机
    2. 解压缩文件夹
    3. 转到eclipse并选择File->New-> Android Project
    4. 选择Create project from existing source,然后选择browse到解压缩文件夹中的HoloEverywhereLib文件夹
    5. Finish
    6. 右键单击新创建的项目,然后转到Properties
    7. Android标题下,您应该看到Library的一个部分,其中包含IsLibrary复选框。确保选中并按Add和之前添加的库ActionBarSherlock
    8. 按照以下步骤将HoloEverywhere添加到您的项目中

      1. 创建新的Android项目
      2. 右键点击项目 - &gt;属性 - &gt; Android - &gt;添加,添加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);
            }
        
        }
        

答案 1 :(得分:8)

似乎

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

导致错误。

改变它:

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

在这里:

Github

正确!

答案 2 :(得分:4)

我的项目出现了同样的错误,这就是我所做的,右键单击HoloEverywhere(properties-&gt; android-&gt;库)从列表中删除ActionBarSherlock然后通过单击add重新添加ActionBarSherlock项目,之后清理项目,所有错误都将消失。

答案 3 :(得分:0)

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

  

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

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

正如我在holoeverywhere issues forum上提出的问题并由开发人员回答:

  

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

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