1

我的应用程序使用 ActionBarSherlock,并且一切正常(在遇到 Dalvik 错误 1 ​​等诸多麻烦之后)。现在我想使用 Android 支持 v4 库中的一个类,但找不到要导入的类。如果我将 v4 库(在 ABS 的属性下)设置为导出,则它可以工作,但随后我得到 Dalvik 错误 1(已添加)错误。

我如何使用这两个库?

4

3 回答 3

4

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

  • 使用 ABS 和支持库从头开始创建一个新项目可以正常工作,但我现有的项目在升级 ADT 后将无法工作,无论如何(主要活动的 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 文件为我解决了这个问题。

希望这可以帮助其他人不要像我一样浪费时间:)

编辑:代码格式

于 2013-05-28T08:45:27.493 回答
2

Since ActionBarSherlock itself depends on the Android Support package, merely adding ActionBarSherlock as a library project to your main project will give you access to the Android Support package automatically, without any modifications. You will see android-support-v4.jar in your Android Dependencies in the Package Explorer.

For example, this sample project references this copy of ActionBarSherlock as a library project, and it uses android.support.v4.app.NotificationCompat without issue.

于 2012-05-26T13:54:33.757 回答
0

发现是我的旧版本的 ViewPagerIndicator 导致了这个问题。更新到 5 月版本修复了它,但我不得不在我的适配器中进行一些小改动。

于 2012-05-26T15:42:22.280 回答