【发布时间】:2016-01-08 20:23:40
【问题描述】:
我使用的是最新的 Android Studio 1.2.2。在尝试将 AppTheme 设置为 Theme.Material according to this answer 以支持旧版本(API 21 除外)和互联网上的许多其他解决方案时,我做了所有编写的事情。我在该文件夹中创建了一个名为 values-v21 和 styles.xml 的不同值文件夹。然后我写了<uses-sdk tools:node="replace" />,构建给了我一个错误说:
Error:(6, 5) uses-sdk element cannot have a "tools:node" attribute
Error:(6, 5) Execution failed for task ':app:processDebugManifest'.
清单合并失败:uses-sdk 元素不能有“tools:node”属性。 这是我的 app.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.amangrover.finalapp"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
}
我认为较新版本的 Android Studio 已解决此问题?
【问题讨论】:
-
这个问题和答案是关于去年的 L 开发者预览版,与 Android 的生产发布版本并不特别相关。只需去掉
tools:node属性,因为它不是必需的。 -
那么我如何为我的应用添加向后兼容性?
-
由于您没有解释您认为不向后兼容的内容,因此没有人能够帮助您。如果您的具体问题是
Theme.Material,请在旧设备上使用不同的基本主题——您对问题的措辞表明您已经在这样做了。 -
您还可以使用新的设计库“com.android.support:design:22.2.0”和 AppCompat 主题来实现材料设计兼容性。看看android-developers.blogspot.com.es/2015/05/…和developer.android.com/tools/support-library/features.html