Android - 编译错误:程序类型已存在

时间:2018-04-19 18:59:07

标签: android gradle compilation

我不知道导致此错误的原因或含义是什么,但我猜它来自gradle文件并且与SDK版本有关。

完整错误:程序类型已存在:android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat $ AccessibilityServiceInfoVersionImpl

和gradle:

apply plugin: 'com.android.application'


android {
    compileSdkVersion 19
    buildToolsVersion "27.0.3"

    repositories {
        maven {
            url "https://repo.eclipse.org/content/repositories/paho-snapshots/"
        }
    }

    defaultConfig {
        applicationId "org.eclipse.paho.android.service.sample"
        minSdkVersion 11
        targetSdkVersion 19
    }


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    implementation 'com.android.support:support-v4:19.0.0'
    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 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为paho库已经有了支持v4。

您还可以通过在命令行中运行 gradle -q dependencies 来检查它,以生成依赖关系报告。您应该看到支持v4的来源。

最后将该库从该特定依赖项中排除:

dependencies {
implementation 'com.android.support:support-v4:19.0.0'
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.android.support', module:'support-v4'

}

答案 1 :(得分:0)

我终于找到了解决方案:

排除最后一个依赖项中的模块support-v4,如@Ruan_Lopes所说,但不排除该组。