34

我正在从 Action Bar Sherlock 迁移到 Action Bar compat。我删除了 ABS,并且里面有 support-v4-google 地图,但出现了错误。我现在将v4直接添加到项目中,看看是否解决,但我想知道:

如果库是多余的或补充的,我从文档中不太了解?

感谢您的建议,指针等。

编辑:这是让我用“外部 jar ...”添加 v4 的错误,它解决了它。

The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved. 
It is indirectly referenced from required .class files

但是如果你说如果已经有 v7 我不应该添加 v4 我该如何向 Eclipse 解释它?

相关帖子,解决方案是在此处添加 v4。扩展ActionBarActivity时类型activity的层次结构不一致

编辑 2:v4 jar 包含在 v7 库项目中,如果按照这些步骤逐点完成:http: //developer.android.com/tools/support-library/setup.html#add-library 我的设置是:

  • Android 4.3:未选中
  • Aprivate Lib:未选中
  • v7-app.../src:检查
  • v7-app.../gen :检查
  • A依赖:未选中
  • 原始 v7 jar:检查
  • 原始 v4 jar:检查
4

5 回答 5

56

v7 包含 v4 支持库,因此无需再次将它放在那里

如果您查看libsv7 支持库的文件夹,您会看到库中已经引用了 v4 jar

于 2013-08-06T15:52:55.160 回答
5

V7 是 android-support 库的新版本,只是在 V4 支持库的 V7 中实现的一些新东西。所以 v4 的 all 方法和类在 v7 中都是可用的。

因此,如果您添加 v7 库,则无需添加 v4 库。

于 2013-08-06T15:58:26.427 回答
2

If you are using Android Studio the default way the v7 support library is included is maven dependencies defined in you build.gradle file.

dependencies {
    compile 'com.android.support:appcompat-v7:18.0.0'
}

The appcompat-v7 .aar file does NOT contain the v4 classes. You can see this by looking in your build/exploded-bundles/ComAndroidSupportAppcompatV71800.aar folder. What I have found is that if you create a new project it will also include the .jar file for v4 from the SDK folder.

于 2013-10-15T00:24:13.340 回答
2

在我的情况下(Eclipse),它取决于您在项目中导入的 v4 和 v7 jar。

我的建议是同时使用此文件夹中存在的文件 jar:C:\adt-bundle-windows-x86_64-aaaammgg\sdk\extras\android\support\v7\appcompat\libs

于 2014-09-02T12:16:43.867 回答
0

public class MainActivity extends AppCompatActivity就我而言,当我在 Eclipse 中使用时,单独使用“android-support-v7-appcompat.jar”是不够的。我还需要添加android-support-v4.jar(构建路径-> 库-> 添加 JAR)。才被AppCompatActivity接受。

于 2016-08-28T07:13:13.200 回答