Android Studio Manifest合并失败minSdkVersion错误

时间:2014-12-17 12:32:03

标签: android android-gradle build.gradle

我正在尝试在我的应用中添加一个依赖项,它的最小sdk版本比我的应用程序更新,所以我收到以下错误

错误:任务':app:processDebugManifest'执行失败。

  

清单合并失败:uses-sdk:minSdkVersion 9不能小于库中声明的版本14       建议:使用工具:overrideLibrary =" com.nononsenseapps.filepicker"强制使用

但我不知道在哪里添加该建议,以便我可以构建它。 这就是我的build.gradle(Module:app)现在看起来的方式

apply plugin: 'com.android.application'

android {
compileSdkVersion 21
buildToolsVersion "21.1.2"

defaultConfig {
    applicationId "com.codedspycamera.android"
    minSdkVersion 9
    targetSdkVersion 21
    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:21.0.3'
compile 'com.nononsenseapps:filepicker:+'
compile 'com.squareup.picasso:picasso:2.4.0'


}

3 个答案:

答案 0 :(得分:2)

com.nononsenseapps.filepicker仅适用于> = 14版本的Android设备。如果你强迫它在< 14设备上工作,我认为它会崩溃。但无论如何,如果你想这样做,你应该强制使用主应用程序中的minSdkVersion参数来覆盖库值。将建议行添加到主应用程序清单。 Read this for more information.

答案 1 :(得分:0)

只是为了让每个人都能清楚地知道这是你必须要做的事情

工具:overrideLibrary标记

一个特殊的标记,只能与uses-sdk声明一起使用,以覆盖导入最低SDK版本比该应用程序的最低SDK版本更新的库。 没有这样的标记,清单合并将失败。该标记将允许用户选择可以导入哪些库而忽略最低SDK版本。

示例,在主要的android清单中:

private static final String CREATE_TABLE_DOGS = "CREATE TABLE"
            + TABLE_DOGS + "(" + COLUMN_ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_NAME + " TEXT NOT NULL, "
            + COLUMN_OWNER + " INTEGER );";

将允许导入具有以下清单的库而不会出现错误:

 <uses-sdk android:targetSdkVersion="14" android:minSdkVersion="2"
          tools:overrideLibrary="com.example.lib1, com.example.lib2"/>

请注意,如果添加多个库,则必须使用逗号“,”

分隔

答案 2 :(得分:0)

对于离子显影剂

config.xml-添加-

 <preference name="android-minSdkVersion" value="19" />

bundle.gradle-添加

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}