我正在使用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" />
究竟是什么。
答案 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支持的任何设备上运行您的应用程序,同时利用支持库中的简洁新视图和实用程序!