这是什么意思<uses-sdk tools:在Android中的overridelibrary =“com.google.android.gms”> </uses-sdk>

时间:2014-12-21 15:40:15

标签: android android-studio

我正在使用Android Studio 1.0.2,我在build.gradle下面。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

如果我不在AndroidManifest.xml中写这篇文章,Android Studio会给我一个错误。

<uses-sdk tools:overrideLibrary="com.google.android.gms" />

早期Android Studio的最新版本之前。我必须写这个

<uses-sdk tools:node="replace" />

这个<uses-sdk tools:node="replace" /><uses-sdk tools:overrideLibrary="com.google.android.gms" />究竟是什么。

1 个答案:

答案 0 :(得分:2)

根据http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

  

工具:overrideLibrary标记

     

一个特殊的标记,只能与uses-sdk声明一起使用,以覆盖导入最低SDK版本比该应用程序的最低SDK版本更新的库。   没有这样的标记,清单合并将失败。该标记将允许用户选择可以导入哪些库而忽略最低SDK版本。

并根据http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_ve

  

Android Gradle Plugin的0.11版本默认打开了一个新的Manifest Merger,它允许我们做一些漂亮的东西(在这里阅读更多相关内容)。在上面的清单中,我添加了一个uses-sdk节点,它只指定了一个tools:node属性。此特定配置告诉清单处理器使用tools-node =“replace”属性将uses-sdk节点中的属性替换为优先级较低的清单(例如库清单)中的uses-sdk节点的任何属性。由于Gradle还将build.gradle中的minSdkVersion和targetSdkVersion插入到这个uses-sdk节点中,这就是我们真正需要添加的内容。   现在,您应该能够在minSdkVersion支持的任何设备上运行您的应用程序,同时利用支持库中的简洁新视图和实用程序!