代码之家  ›  专栏  ›  技术社区  ›  Dehodson

Google Play位置库:清单合并失败

  •  2
  • Dehodson  · 技术社区  · 7 年前

    尝试包含Google Play Services位置库时,我遇到以下错误:

    Error:Execution failed for task ':app:processDebugManifest'.
    > Manifest merger failed : Attribute meta-data#android.support.VERSION@value 
    value=(25.4.0) from [com.android.support:design:25.4.0] 
    AndroidManifest.xml:28:13-35 is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0).
    Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:26:9-28:38 to override.
    

    我的依赖项如下:

    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        // You must install or update the Support Repository through the SDK manager to use this dependency.
        compile 'com.android.support:support-v4:25.4.0'
        compile 'com.android.support:design:25.4.0'
        implementation "com.android.support:appcompat-v7:25.4.0"
        implementation "com.android.support:preference-v14:25.4.0"
        implementation "com.koushikdutta.ion:ion:2.+"
        implementation 'com.twilio:video-android:2.0.0-beta2'
        implementation 'com.google.android.gms:play-services-location:12.0.0'
    
        compile('org.simpleframework:simple-xml:2.7.+') {
            exclude module: 'stax'
            exclude module: 'stax-api'
            exclude module: 'xpp3'
        }
    }
    

    我已经尝试过的:

    • 更改支持库的版本。如果我这样做,我会遇到很多关于找不到资源和属性的错误。
    • 添加一个解决策略,如几篇有类似错误的帖子中所述,如 this one 。这会导致类似的一连串错误。
    • 正在更新生成工具的版本。
    • 正在更新CompileSDK版本。

    我觉得必须有一个简单的解决办法,但我似乎找不到。谢谢你的时间。

    2 回复  |  直到 7 年前
        1
  •  1
  •   ישו אוהב אותך Mahavir    7 年前

    您应该通过以下方式检查冲突库中的依赖关系:

    ./gradlew app:dependencies
    

    其中app是您的模块名称。

    或执行以下操作(请阅读 View the dependency tree ):

    • 选择查看(>);工具窗口(>);渐变(或单击工具栏中的渐变)。
    • 展开AppName>任务(>);android和双击androidDependencies。Gradle执行任务后,应打开Run窗口以显示输出。

    快速检查您的依赖关系 com.koushikdutta.ion:ion:2.+ 正在中使用以下内容 its dependencies :

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

    将获得最新版本的支持库。因此,您需要使用以下方法将支持库从中排除:

    implementation ("com.koushikdutta.ion:ion:2.+") {
        exclude group: 'com.android.support'
        exclude module: 'support-v4'
    }
    

    你应该尽量避免使用 + 在依赖项库版本中。

    确保使用相同的版本 compileSdkVersion ,则, buildToolsVersion ,则, targetSdkVersion support libraries

        2
  •  1
  •   Kruti Parekh    7 年前

    请尝试以下提到的库代码:

    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:support-v4:27.1.0'
    compile 'com.android.support:design:27.1.0'
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support:preference-v14:27.1.0'
    implementation "com.koushikdutta.ion:ion:2.+"
    implementation 'com.twilio:video-android:2.0.0-beta2'
    implementation 'com.google.android.gms:play-services-location:12.0.0'
    compile('org.simpleframework:simple-xml:2.7.+') {
        exclude module: 'stax'
        exclude module: 'stax-api'
        exclude module: 'xpp3'
    }
    

    此外,请确保 minSdkVersion twilio库支持16或更多 MinSDK版本 16或更多。还有一件事 compileSdkVersion 必须为27。