清单合并失败:uses-sdk:minSdkVersion 1不能小于版本7

Jua*_*uan 15 android gradle build.gradle android-gradle-plugin

我正在使用Parse学习这个构建简单聊天客户端,我正在使用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'
 }
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我收到了下一个错误:

/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
Run Code Online (Sandbox Code Playgroud)

请问你能帮帮我吗

Gab*_*tti 26

你必须添加minSdkVersion到你的build.gradle.

否则,gradle使用默认值= 1.
您正在使用库minSdk=7,那么您不能使用minSdk = 1.

还要注意gradle 会覆盖 Manifest中的值.

添加如下内容:

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 14  
        targetSdkVersion 22
    }
}
Run Code Online (Sandbox Code Playgroud)

注意你的build.gradle.你有两个依赖块.您必须合并这些块.


and*_*dev 5

只需添加

<uses-sdk tools:overrideLibrary="android.support.v7.appcompat"/>
Run Code Online (Sandbox Code Playgroud)

到您的AndroidManifest.xml,它将正常工作。当API版本较旧时,这将使Manifest合并也可以添加此合并。不要忘记在xml根目录下添加工具名称空间,如下所示。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.app"
      xmlns:tools="http://schemas.android.com/tools">
Run Code Online (Sandbox Code Playgroud)

您还可以在此处找到有关此信息的更多信息:http : //tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools : overrideLibrary-marker