zoukankan      html  css  js  c++  java
  • Android Studio 编译: Program type already present: XXX 解决方案

    3情况1:个例

    build.gradle 中

        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.1'
            //
        }

    改成

        dependencies {
             //目前最新版【2018年05月15日】
             classpath 'com.android.tools.build:gradle:3.1.2'
            //
        }

    情况2:确实是依赖冲突

    Error: Program type already present: android.support.v4.app.xxx

    例子: 
    引入以下依赖报该错误

        //Paho Android Service
        implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
        implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'

    执行命令:

    gradlew -q app:dependencies

    排查 support-v4 出现的依赖关系中 发现 org.eclipse.paho:org.eclipse.paho.android.service:1.0.2
    依赖了 com.google.android:support-v4 注意不是 com.android.support:support-v4 !!!
    坑:

    //刚开始下意识去写了个排除,发现没有用。。。,原因就是它用 com.google.android:support-v4 不是 com.android.support
        implementation('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'){
              exclude group: 'com.android.support', module: 'support-v4'
          }

    总结: 
    找到依赖的问题根源后进行排除,按提示报错的来灵活处理冲突问题!

    排除方式1:

    configurations {
       all*.exclude group: 'com.google.android', module: 'support-v4'
       //或者粗暴点,就没有上面的坑了  all*.exclude module: 'support-v4'
    }
    dependencies {
    ...
        implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
        implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'
    ...
    }

    排除方式2:

    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
     implementation('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
             exclude(group: 'com.google.android', module: 'support-v4')
        }
    
    /* 或者粗暴点,就没有上面的坑了
    implementation('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2') {
            exclude module: 'support-v4'
        }
        */

    情况3:

     com.android.support:xxx 等官方依赖包 v4 v7 v13 等版本号保持一致 比如 27.1.1

  • 相关阅读:
    如何基于日志,同步实现数据的一致性和实时抽取?
    实例解说AngularJS在自动化测试中的应用
    漏洞管理平台『洞察』部署指南
    UAVStack的慢SQL数据库监控功能及其实现
    淡说Linux 的发展史
    一张图告诉你E-R图怎么画
    一张图告诉你UML图怎么画❀
    最简单,最明了,看了就会的VScode和C++的配置!(Visual Studio Code)
    用Eclipse开发项目,你不能不知道的快捷键
    什么年代了,你还不会用油猴刷网课!
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/10559122.html
Copyright © 2011-2022 走看看