【问题标题】:Android - Compilation error: program type already presentAndroid - 编译错误:程序类型已存在
【发布时间】:2018-04-19 18:59:06
【问题描述】:

我不知道是什么导致了这个错误或者是什么意思,但我猜它来自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'
}

【问题讨论】:

标签: android gradle compilation


【解决方案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'

}

【讨论】:

  • 您是否尝试过更新您正在使用的版本? paho.client.mqttv3 到 1.1.0 和 paho.android.service 到 1.1.1
  • 谢谢@Ruan_Lopes 您的解决方案有效。将 MQTT Paho 升级到 1.1.1
【解决方案2】:

我终于找到了解决办法:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多