【问题标题】:Error: Program type already present: com.google.common.annotations.Beta错误:程序类型已存在:com.google.common.annotations.Beta
【发布时间】:2018-09-07 12:17:06
【问题描述】:

自从我的 android studio 几天前更新后,由于这个错误,我一直在努力让我的应用程序再次运行。

Program type already present: com.google.common.annotations.Beta    
Message{kind=ERROR, text=Program type already present: 
com.google.common.annotations.Beta, sources=[Unknown source file], tool name=Optional.of(D8)}

这是我的 build.gradle:

apply plugin: 'com.android.application'

android {
compileSdkVersion 27
defaultConfig {
    applicationId "com.dissertation.bitcoin.bitparking"
    minSdkVersion 21
    targetSdkVersion 27
    multiDexEnabled true
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
   }
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation('com.android.support:appcompat-v7:27.1.0')
implementation 'com.android.support:design:27.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.google.http-client:google-http-client-android:1.23.0'
implementation 'com.google.api-client:google-api-client-android:1.23.0'
implementation 'com.google.code.findbugs:jsr305:2.0.1'
implementation 'com.google.api-client:google-api-client-gson:1.23.0'
implementation 'com.googlecode.json-simple:json-simple:1.1'
implementation files('libs/java-json.jar')
implementation 'com.android.support:support-compat:27.1.0'
implementation 'com.github.bumptech.glide:glide:4.3.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google:bitcoinj:0.11.3'
implementation 'de.schildbach.wallet:integration-android:2.0'
}

上周这段代码对我来说运行良好。但是,由于我对 android 开发还很陌生,所以我可能忽略了一些东西。任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: android gradle dependencies


    【解决方案1】:

    只需尝试将 exclude module: 'guava-jdk5' 添加到 google apis 导入中,如下所示:

    implementation('com.google.api-client:google-api-client-android:1.20.0') {
        exclude module: 'guava-jdk5'
    }
    

    【讨论】:

    • 您是如何找到 google-api 库和 Guava 库的链接的?
    【解决方案2】:

    如果都失败了,试试:

    [app/build.gradle]
    
    configurations {
        all*.exclude module: 'guava-jdk5' 
    }
    

    【讨论】:

      【解决方案3】:

      就我而言,我使用的是google-api-services-tasks 和google-api-client-android。通过检查依赖关系,我注意到它们都使用google-api-client。

      ./gradlew app:dependencies
      
      ...
      +--- com.google.api-client:google-api-client-android:1.23.0
      |    +--- com.google.api-client:google-api-client:1.23.0
      |    |    +--- com.google.oauth-client:google-oauth-client:1.23.0
      |    |    |    +--- com.google.http-client:google-http-client:1.23.0
      |    |    |    |    +--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
      |    |    |    |    \--- org.apache.httpcomponents:httpclient:4.0.1
      |    |    |    |         +--- org.apache.httpcomponents:httpcore:4.0.1
      |    |    |    |         +--- commons-logging:commons-logging:1.1.1
      |    |    |    |         \--- commons-codec:commons-codec:1.3
      |    |    |    \--- com.google.code.findbugs:jsr305:1.3.9 -> 2.0.1
      |    |    +--- com.google.http-client:google-http-client-jackson2:1.23.0
      |    |    |    +--- com.google.http-client:google-http-client:1.23.0 (*)
      |    |    |    \--- com.fasterxml.jackson.core:jackson-core:2.1.3
      |    |    \--- com.google.guava:guava-jdk5:17.0
      |    \--- com.google.http-client:google-http-client-android:1.23.0
      |         \--- com.google.http-client:google-http-client:1.23.0 (*)
      +--- com.google.apis:google-api-services-tasks:v1-rev52-1.23.0
      |    \--- com.google.api-client:google-api-client:1.23.0 (*)
      

      一旦我从两者中排除了guava-jdk5,错误消息就消失了。

      [app/build.gradle]
      
      implementation('com.google.api-client:google-api-client-android:1.23.0') {
          exclude module: 'guava-jdk5'
      }
      implementation('com.google.apis:google-api-services-tasks:v1-rev52-1.23.0') {
          exclude module: 'guava-jdk5'
      }
      

      【讨论】:

      • 为我工作。谢谢
      【解决方案4】:

      将 Gradles 更改为:

      implementation 'com.google.apis:google-api-services-vision:v1-rev369-1.23.0'  exclude module: 'guava-jdk5'
          implementation 'com.google.api-client:google-api-client-android:1.23.0' exclude module: 'guava-jdk5' exclude module: 'httpclient'
          implementation 'com.google.http-client:google-http-client-gson:1.23.0' exclude module: 'httpclient'

      它对我有用

      【讨论】:

        【解决方案5】:

        如果您也在项目中使用 Kotlin,请删除 "kapt 'com.android.databinding:compiler" 来自您的 build.gradle(应用程序模块)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-07-25
          • 2019-09-04
          • 2020-10-13
          • 2019-05-22
          • 2020-03-26
          • 2019-05-03
          • 2020-02-15
          相关资源
          最近更新 更多