如果我使用新的“V7 Appcompat库”,我还需要“V4支持库”,最低SDK = 7吗?

时间:2013-08-06 15:50:03

标签: android android-support-library android-appcompat

我正从Action Bar Sherlock迁移到Action Bar compat。我删除了ABS,我有支持-v4-google地图,我收到了错误。我现在将v4直接添加到项目中以查看它是否解决,但我想知道:

如果库是冗余的或补充的话,我真的不明白文档吗?

感谢您的建议,指示等。

编辑:这是一个错误,让我添加v4与“外部jar ...”解决它。

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

但是,如果你说我不应该添加v4,如果已经有v7,我该怎么解释它?

相关帖子,解决方案是在这里添加v4。 The hierarchy of the type activity is inconsistent when extending ActionBarActivity

编辑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:checked
  • ADependencie:unchecked
  • raw v7 jar:检查
  • raw v4 jar:检查

5 个答案:

答案 0 :(得分:56)

v7包含v4支持库,因此无需再次使用它

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

答案 1 :(得分:5)

V7是android-support库的新版本,只是在V4支持库的V7中实现的新功能。所以v4的所有方法和类都在v7中可用。

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

答案 2 :(得分:2)

如果您使用的是Android Studio,则包含v7支持库的默认方式是build.gradle文件中定义的maven依赖项。

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

appcompat-v7 .aar文件不包含v4类。您可以通过查看build / explosion-bundles / ComAndroidSupportAppcompatV71800.aar文件夹来查看此内容。我发现如果你创建一个新项目,它还将包含SDK文件夹中v4的.jar文件。

答案 3 :(得分:2)

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

我的建议是同时使用此文件夹中的文件jar: C:\ ADT-束 - 窗口x86_64的-aaaammgg \ SDK \额外\机器人\支持\ V7 \程序兼容性\库

答案 4 :(得分:0)

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