在ADT 17之后,我如何使用ActionBarSherlock和Android Support v4库?

时间:2012-05-26 13:48:36

标签: android eclipse actionbarsherlock

我的应用程序使用ActionBarSherlock,一切都运行正常(在Dalvik错误1等很多麻烦之后)。现在我想使用Android支持v4库中的一个类,但我找不到要导入的类。如果我将v4库(在ABS'属性下)设置为导出,但是我得到Dalvik错误1(已添加)错误。

我如何使用这两个库?

3 个答案:

答案 0 :(得分:4)

如果您仍然遇到ABS问题,这可能会有所帮助:

  • 从头开始创建一个新项目与ABS&支持lib,但升级ADT后我的现有项目无效,无论如何(主Activity的ClassNotFoundException)
  • 我在ABS库项目和引用项目中添加了最新版本的支持库,但仍然发生了异常
  • 最后,我比较了工作新项目和现有项目的所有配置文件,发现了以下不同之处:

现有项目:

<classpath>
  <classpathentry kind="src" path="src"/><classpathentry kind="src" path="gen"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>  
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
  <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
  <classpathentry kind="output" path="bin/classes"/>
</classpath>

新创建(工作)项目:

<classpath>
  <classpathentry kind="src" path="src"/><classpathentry kind="src" path="gen"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
  <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
  <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
  <classpathentry kind="output" path="bin/classes"/>
</classpath>

请注意,属性exported在XML文件中的不同节点上设置为true。调整现有项目中的XML文件为我解决了这个问题。

希望这有助于其他人不要像我一样浪费太多时间。)

编辑:代码格式

答案 1 :(得分:2)

由于ActionBarSherlock本身依赖于Android支持包,因此只需将ActionBarSherlock作为库项目添加到主项目中,即可自动访问Android支持包,无需任何修改。您将在Package Explorer中的Android Dependencies中看到android-support-v4.jar

例如,this sample project引用this copy of ActionBarSherlock作为图书馆项目,它使用android.support.v4.app.NotificationCompat没有问题。

答案 2 :(得分:0)

发现是我的旧版ViewPagerIndicator造成了这个问题。 更新到May版本修复了它,但我必须在我的适配器中进行一些小的更改。