web-dev-qa-db-ja.com

マニフェストのマージに失敗しました:uses-sdk:minSdkVersion 1をバージョン7より小さくすることはできません

私はこれを研究しています Parseを使用したSimple Chatクライアントの構築 であり、gradle 2.4を使用してプロジェクトを構築しています。私のbuild.gradleとAndroidManifest.xmlコードは次のとおりです。

build.gradle

 buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:1.1.3'
    }
 }

 apply plugin: 'com.Android.application'

 Android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
 }


 repositories {
    jcenter()
 }


 dependencies {
    compile fileTree(dir: 'libs', include: 'Parse-*.jar')
    compile 'com.parse.bolts:bolts-Android:1.+'
 }

 dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.Android.support:support-v4:21.0.0'
    compile 'com.Android.support:appcompat-v7:21.0.0+'    
    compile 'com.squareup.picasso:picasso:2.5.0'
 }

AndroidManifest.xml

<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />

<application Android:label="@string/app_name" 
Android:name="main.Java.org.hello.ChatApplication">
    <activity
        Android:name=".ChatActivity"
        Android:label="@string/app_name" >
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />
            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

次のエラーが発生します。

/home/grados-sanchez/workspace/simplechat/src/main/AndroidManifest.xml:0:0   Error:
uses-sdk:minSdkVersion 1 cannot be smaller than version 7 declared in    library /home/grados-sanchez/workspace/simplechat/build/intermediates/exploded-aar/com.Android.support/appcompat-v7/21.0.0/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="Android.support.v7.appcompat" to force usage
:processDebugManifest FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 1 cannot be smaller   than version 7 declared in library /home/grados-sanchez/workspace/simplechat/build/intermediates/exploded-aar/com.Android.support/appcompat-v7/21.0.0/AndroidManifest.xml
  Suggestion: use tools:overrideLibrary="Android.support.v7.appcompat" to force usage

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --    debug option to get more log output.

BUILD FAILED

私を手伝ってくれますか

16
Juan

minSdkVersionbuild.gradleに追加する必要があります。

それ以外の場合、gradleはデフォルト値= 1を使用します。
minSdk=7のライブラリを使用している場合、minSdk = 1は使用できません。

また、gradle overrides Manifestの値にも注意してください。

次のようなものを追加します。

Android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14  
        targetSdkVersion 22
    }
}

Build.gradleに注意してください。 2つの依存関係ブロックがあります。これらのブロックをマージする必要があります。

24

追加するだけ

<uses-sdk tools:overrideLibrary="Android.support.v7.appcompat"/>

あなたのAndroidManifest.xmlにそれを動作させます。これにより、APIのバージョンが古い場合でも、マニフェストマージャーがこれを追加できるようになります。以下に示すように、xmlルートにtools名前空間を追加することを忘れないでください。

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
      package="com.example.app"
      xmlns:tools="http://schemas.Android.com/tools">

この詳細については、こちらもご覧ください。 http://tools.Android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:overrideLibrary-marker

5
and_dev

Build.gradleに次のコードを追加するのを忘れているようです。それをbuild.gradleに追加してコンパイルしてみてください

 defaultConfig {
    applicationId "com.XXX.XXXX"  // your application package 
    multiDexEnabled true
    minSdkVersion 14
    targetSdkVersion 18
    versionCode 99
    versionName "11.1.5.5"
}
0
Anil Ugale