Manifest合并失败:use -sdk:minSdkVersion 10不能小于库com.中声明的版本L



Android Studio中下载L预览发布版本后得到上述错误,而我的项目是minSdkVersion 19。

此外,当mindSdkVersion设置如下时:

defaultConfig {
....
          minSdkVersion 'L'
....
    }

我得到了以下几十个错误,关于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'.

我有两个问题:

  1. 为什么AS抱怨minSdkVersion ?我猜想是因为AppCompat-v7 21只支持L版本;但是为什么呢?另外,当秋天正式发布时,它是否只支持L版本?因为那会是个问题……或者这只是一个临时的限制,以便应用程序不会被推到Play Store,如在谷歌I/O 2014 Keynote中所述?
  2. 为什么appcompatv7 21抱怨这些错误,因为我已经将mindSdkVersion设置为L ?
compileSdkVersion 'android-L'

繁荣。做。

最后编辑:作为Android 5.0版本,这不再是一个问题,只是直接针对API级别21。

编辑清晰:确实David_E下面指定的,这个解决方案只适用于L版本,如果你试图在L以下的设备上部署应用程序(ex <=4.4.4),它会抱怨OLD_SDK。为了使应用程序工作pre-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"
        }
}

这里所述的答案可能无法正常工作,因为它将使您的应用程序仅适用于Android l。

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

来自:

compile 'com.android.support:appcompat-v7:+'

:

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

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

希望Google能在不久的将来修复这个问题。

对我来说有效的方法是安装Android Studio测试版(不是预览版,测试版今天作为IO的一部分发布)。

卸载预览版,安装测试版并打开项目。它会要求你使用project SDK或Studio SDK,使用Android Studio的SDK。

转到项目本地。属性文件和sdk所在的位置。请确保任何反斜杠()都是双倍的。。

转到Project Structure> SDK,确保指向我Pc上的Android SDK,它是C:Program Files(x86)Android Android -studioSDK。

然后在您的项目和您已构建的任何库中。包含

的Gradle文件

compile 'com.android.support:support-v4更改为compile 'com.android.support:support-v4:20+

重新同步gradle文件和所有固定的

强制使用一个工作版本只要像这样改变gradle的依赖:

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:appcompat-v7:19+'
    ...
}

:

compile 'com.android.support:appcompat-v7:+'

注意:

我更新了Tools &SDK管理器中的附加功能。

项目被破坏后,我修复了它,如图所示。

现在我不更新android L &4.4W(今天的bug已经够多了:-()

谢谢David的回答!

I had to change

compile 'com.android.support:support-v13:+'

:

compile 'com.android.support:support-v13:20.+'

现在一切都很完美。

另外:这里的其他答案并没有为我解决问题,但我找到了一种替代方法来解决Android Studio 0.8.0上的Android - 1问题。在我更改了构建中的依赖关系之后。gradle,不幸的是问题不断发生,代码会说OLD_SKD。我用的是Galaxy S2。

除了将所有内容更改为:19+:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19+'
    compile 'com.android.support:support-v4:19+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:mediarouter-v7:19+'
}

它仍然不能工作,所以我不得不移回所有可能的地方:

android {
    compileSdkVersion 19
    buildToolsVersion '19.1'
    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }

现在该应用程序在手机上再次运行。我可能该买个新手机了,但现在,我希望这能帮到别人。

相关内容

最新更新