【问题标题】:After ADT 17, how do I use ActionBarSherlock AND the Android Support v4 library?在 ADT 17 之后,我如何使用 ActionBarSherlock 和 Android Support v4 库?
【发布时间】:2012-05-26 13:48:35
【问题描述】:

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

如何同时使用这两个库?

【问题讨论】:

    标签: android eclipse actionbarsherlock


    【解决方案1】:

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

    • 使用 ABS 和支持库从头开始创建新项目可以正常工作,但升级 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 文件解决了我的问题。

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

    编辑:代码格式

    【讨论】:

      【解决方案2】:

      由于 ActionBarSherlock 本身依赖于 Android Support 包,只需将 ActionBarSherlock 作为库项目添加到您的主项目中,您就可以自动访问 Android Support 包,而无需进行任何修改。您将在 Package Explorer 的 Android 依赖项中看到 android-support-v4.jar

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

      【讨论】:

      • 那是我的问题。我在 Android Dependencies 中看不到支持 .jar。
      • @D_Steve595:确保您使用的是最新版本的 Android SDK 工具和 ADT 插件,以防您遇到当前版本中已修复的错误。确保您的主项目在project.properties 中有一行,例如android.library.reference.1=../../external/ActionBarSherlock(将此处显示的路径替换为您的ActionBarSherlock 副本的相对路径。
      • 它有:android.library.reference.2=../ActionBarSherlock 库,我猜这就是我需要的。还是不行。
      • @D_Steve595:我不知道该告诉你什么。大概,在你挣扎的某个地方,你打了一些不喜欢被打的东西……:-)
      • 可能 :( 我想我只是重新创建项目并只复制源文件。有没有我可以按照的分步操作,所以我知道我在做正确的事情?
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-06-03
        • 2016-05-30
        • 1970-01-01
        • 2013-08-18
        • 2012-12-15
        • 1970-01-01
        • 2013-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多