我尝试使用Android L中的新CardView。我更新了SDK管理器中的所有内容,但我不断收到以下错误:
失败[INSTALL_FAILED_OLDER_SDK]
这是我的build.gradle
文件:
apply plugin: 'android'
android {
compileSdkVersion 'android-L'
buildToolsVersion '20.0.0'
defaultConfig {
applicationId "www.thomascbeerten.com.nieuwetests"
minSdkVersion 8
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
// Support Libraries
compile 'com.android.support:support-v4:19.1.0'
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:gridlayout-v7:19.1.0'
compile 'com.android.support:mediarouter-v7:19.1.0'
// compile 'com.android.support:support-v13:19.1.0'
compile 'com.android.support:recyclerview-v7:+'
}
答案 0 :(得分:54)
最近有一篇关于L SDK不兼容的帖子 与之前版本的Android。我一直在挖掘AOSP存储库 现在已经有好几个小时了,并确定这些工具就是这样的 因为它们旨在以不同方式处理预览平台。 如果您针对预览SDK(android-L)进行编译,那么构建工具将会 将minSdkVersion和targetSdkVersion锁定到相同的API级别。这个 导致生成的应用程序无法安装 运行旧版Android的设备,即使您的应用程序 没有做任何针对L的事情。更糟糕的是,新的 支持库(CardView,RecyclerView,Palette等)也被锁定 进入L API级别,即使 - 根据他们的存储库 名称 - 他们应该在API级别7上正常工作(他们会这样做!)。
有关此here的信息,请参阅我的Reddit帖子,并附带解决方法。
答案 1 :(得分:5)
一旦您解决了Eddie所提及的上述问题。您可能还会遇到另一个错误;;
Error:Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light'.
这将出现在styles.xml中。快速解决方法是使用以下内容替换它:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--<style name="AppTheme" parent="android:Theme.Material.Light">-->
<style name="AppTheme" parent="android:Theme.Holo.Light">
</style>
答案 2 :(得分:2)
更改
android {
compileSdkVersion 'android-L'
buildToolsVersion '20.0.0'
到
android {
compileSdkVersion 21
buildToolsVersion '21.0.2'
注意android-L
是单引号,但21
不是。 21
是一个整数而不是字符串。
答案 3 :(得分:0)
当你使用L进行编译时,它实际上会在编译期间进行更改,将minsdkversion设置为L.如果要使用RecyclerView或CardView,我建议您查看RecyclerViewLib。 RecyclerView和CardView已经进入这个库,因此没有最小版本L问题。作者还在他的blog post中解释了如何删除所有L相关代码以使其安全使用。
要将RecyclerViewLb添加到项目中,只需将以下行添加到build.gradle文件中的依赖项中:
compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'
然后,您不希望将compile 'com.android.support:recyclerview-v7:+'
添加到build.gradle,因为您将通过RecyclerViewLib获取。
答案 4 :(得分:0)
我刚遇到这个问题。当您的min sdk版本和构建目标设置为比手机运行更高的API级别/操作系统版本时,可能会发生这种情况。如果您使用的是Android Studio,请转到文件&gt;项目结构&gt;并编辑相关设置,然后再次运行。