Android Studio编译项目的时候报Manifest merger failed

Android Studio编译项目的时候报

Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed 
  • 1

点击查看log,提示如下:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(25.3.0) from [com.android.support:support-v13:25.3.0] AndroidManifest.xml:27:9-31 is also present at [com.android.support:preference-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 value=(26.0.0-alpha1). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:25:5-27:34 to override.
  • 1

原因:都是因为如果程序内出现不同的,support或者其他外部引用库的多个版本,Gradle在进行合并的时候会使用本地持有的,最高版本的来进行编译,所以25的support就有可能引用26的东西,就会出现 属性 merge 错误 ,或者Class丢失,解决方法就是强制使用相同版本的库:

解决方法:在主module的gradle.build的最后加上如下代码:

configurations.all {

   resolutionStrategy.eachDependency { DependencyResolveDetails details ->
       def requested = details.requested
       if (requested.group == 'com.android.support') {
           if (!requested.name.startsWith("multidex")) {
               details.useVersion '25.3.0'//默认使用的版本
           }
       }
   }
}

猜你喜欢

转载自blog.csdn.net/gjqi12/article/details/78457125