清单合并失败:uses-sdk:minSdkVersion 10不能小于库com.android.support:appcompat-v7:21.0.0-rc1中声明的版本L.

Bog*_*rac 43 android android-5.0-lollipop

下载L预览版本后Android Studio,当我的项目有minSdkVersion19 时,出现上述错误.

此外,设置mindSdkVersion如下:

defaultConfig {
....
          minSdkVersion 'L'
....
    }
Run Code Online (Sandbox Code Playgroud)

关于来自以下方面的资源,我收到了如下的几十个错误AppCompat-v7-21:

/home/user/workspace/project/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0-rc1/res/values-v21/values.xml
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'.
Run Code Online (Sandbox Code Playgroud)

所以我有两个问题:

  1. AS为什么抱怨minSdkVersion?我认为因为AppCompat-v7 21仅支持L版本; 但为什么 ?此外,它还将在秋季正式发布时仅支持L版本吗?因为这将是一个问题...或者它只是一个临时限制,以便不能将应用程序推送到Play商店,如Google I/O 2014主题演讲中所述?
  2. 为什么AppCompat-v7 21会抱怨这些错误,因为我已经将mindSdkVersion设置为L?

Bog*_*rac 56

compileSdkVersion 'android-L'
Run Code Online (Sandbox Code Playgroud)

繁荣.完成.

最后编辑:从Android 5.0发布版开始,这不再是一个问题,只是直接针对API级别21.

编辑为清晰起见:确实如下面指定的David_E,此解决方案仅适用于L版本,如果您尝试在低于L(ex <= 4.4.4)的设备上部署应用程序,它将抱怨OLD_SDK.为了使应用程序在L之前工作,您仍然需要使用旧的v20支持lib + app compat + targetVersionSdk和compileVersionSdk

dependencies {

        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.android.support:support-v4:20.+'
    }

    android {
        compileSdkVersion 20
        buildToolsVersion '20'

        defaultConfig {
            applicationId "com.example.application"
            minSdkVersion 10
            targetSdkVersion 20
            versionCode 1
            versionName "1.0"
        }
}
Run Code Online (Sandbox Code Playgroud)

  • 所以我可以用L SDK编译并定位Android 4.X? (2认同)

Dav*_*d_E 32

此处说明的答案可能无法正常运行,因为它会使您的应用仅适用于Android L.

为了保持与旧版Android OS版本的向后兼容性,请更改gradle依赖性

从:

compile 'com.android.support:appcompat-v7:+'
Run Code Online (Sandbox Code Playgroud)

至:

compile 'com.android.support:appcompat-v7:20.+'
Run Code Online (Sandbox Code Playgroud)

请注意,错误是抱怨com.android.support:appcompat-v7:21.0.0-rc1,原因是使用appcompat-v7:+将告诉gradle导入appcompat-v7库的最新依赖项,不幸的是这个最新版本仅适用于Android L,所以我们必须指向以前的版本.

希望谷歌能在不久的将来解决这个问题.