Cannot find a version of 'com.google.code.findbugs:jsr305' that satisfies the version constraints

后端 未结 6 1283
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-02 03:58

When generated signed APK for realse i get this error message:

Cannot find a version of \'com.google.code.findbugs:jsr305\' that satisfies the version constr         


        
相关标签:
6条回答
  • 2021-01-02 04:21

    Try. Method 1: comment out or delete in the app: gradle lines related to the tests 'androidTestImplementation'; Method 2: In the "open / edit run" window of Android Studio, the option "app" should be selected. enter image description here

    0 讨论(0)
  • 2021-01-02 04:24

    I am not sure of exact cause of this problem. However, after trying several options, it automatically started working

    If you are using Room component, and writing tests for it. You need to add the following dependencies.

    // optional - Guava support for Room, including Optional and ListenableFuture
    implementation "androidx.room:room-guava:2.1.0"
    
    // Test helpers
    testImplementation "androidx.room:room-testing:2.1.0"
    
    0 讨论(0)
  • 2021-01-02 04:31

    Try this

    android 
     {
        configurations.all 
        {
          resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
        }
     }
    
    0 讨论(0)
  • 2021-01-02 04:37

    This is working for me thanks to StackOverflow

    past inside app.gradle file

     android 
     {
        configurations.all 
        {
          resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9'
        }
     }
    
    0 讨论(0)
  • 2021-01-02 04:41

    I had a similar problem today and found this : https://github.com/trello/RxLifecycle/issues/154

    Manged to fix my problem by editing the Gradle Scripts build.gradle in the (module:app) under dependancies adding :

    androidTestImplementation 'com.google.code.findbugs:jsr305:1.3.9'
    

    I originally tried a different version number but got an error that told me what version to use, so you may need to have a couple of tries.

    0 讨论(0)
  • 2021-01-02 04:48

    For those wondering how to solve the dependencies conflict issues.

    My dependencies:

    // Conflicted transitive dependency for androidx.test:monitor
    - org.robolectric:robolectric -> androidx.test:monitor:1.2.0 (forced to use 1.1.0)
    - androidx.test:core -> androidx.test:monitor:1.1.0
    - androidx.test:runner -> androidx.test:monitor:1.1.0
    
    // Conflicted transitive dependency for com.google.guava:listenablefuture
    - androidx.test.ext:truth -> androidx.test:monitor:9999.0 (forced to use 1.0)
    - androidx.work:work-runtime -> androidx.test:monitor:1.0
    

    Resolutions 1

    I ended-up checking for the Required by & Could not resolve [dependency] keyword to determine and choose which version I want to include, e.g: androidx.test:monitor:1.1.0 & com.google.guava:listenablefuture:1.0 and then exclude for the rest by doing something like this:

        androidTestImplementation(org.robolectric:robolectric:4.3.1) {
            exclude(group = "androidx.test", module = "monitor")
            exclude(group = "com.google.guava", module = "listenablefuture")
        }
    

    I'm forcing the exclude androidx.test:module from org.robolectric:robolectric:4.3.1 and to use the androidx.test:module:1.1.0 that required by both androidx.test:core & androix.test:runner.

    Also the same for guavalistener I'm not using truth, so I remove it, but if you do need it, you can do the same to exclude/choose the required dependency that you want to include

    Resolutions 2

    If you using roboelectric, you might wanna to exclude a few dependencies as well like here from @finder2 java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class org.apache.maven.artifact.Artifact found in modules maven-ant-tasks-2.1.3.jar

    The above method was a hotfix, also you might want to choose carefully which transitive dependency that you want to use or just remove the dependency that you don't needed (truth is for my example)

    Below is the error build output after fixing the findbugs dependencies conflict, and with the above method, I'm able to fix it.

    * What went wrong:
    Could not determine the dependencies of task ':app:preDevDebugAndroidTestBuild'.
    > Could not resolve all task dependencies for configuration ':app:devDebugAndroidTestRuntimeClasspath'.
       > Could not resolve androidx.test:monitor:{strictly 1.1.0}.
         Required by:
             project :app
          > Cannot find a version of 'androidx.test:monitor' that satisfies the version constraints: 
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'androidx.test:monitor:1.2.0'
               Constraint path 'android-etalase-app:app:unspecified' --> 'androidx.test:monitor:{strictly 1.1.0}' because of the following reason: devDebugRuntimeClasspath uses version 1.1.0
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:core:1.0.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:runner:1.1.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'org.robolectric:shadows-framework:4.3.1' --> 'androidx.test:monitor:1.2.0'
    
       > Could not resolve androidx.test:monitor:1.2.0.
         Required by:
             project :app > org.robolectric:robolectric:4.3.1
             project :app > org.robolectric:robolectric:4.3.1 > org.robolectric:shadows-framework:4.3.1
          > Cannot find a version of 'androidx.test:monitor' that satisfies the version constraints: 
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'androidx.test:monitor:1.2.0'
               Constraint path 'android-etalase-app:app:unspecified' --> 'androidx.test:monitor:{strictly 1.1.0}' because of the following reason: devDebugRuntimeClasspath uses version 1.1.0
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:core:1.0.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:runner:1.1.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'org.robolectric:shadows-framework:4.3.1' --> 'androidx.test:monitor:1.2.0'
    
       > Could not resolve androidx.test:monitor:1.1.0.
         Required by:
             project :app > androidx.test:core:1.0.0
             project :app > androidx.test:runner:1.1.0
          > Cannot find a version of 'androidx.test:monitor' that satisfies the version constraints: 
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'androidx.test:monitor:1.2.0'
               Constraint path 'android-etalase-app:app:unspecified' --> 'androidx.test:monitor:{strictly 1.1.0}' because of the following reason: devDebugRuntimeClasspath uses version 1.1.0
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:core:1.0.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test:runner:1.1.0' --> 'androidx.test:monitor:1.1.0'
               Dependency path 'android-etalase-app:app:unspecified' --> 'org.robolectric:robolectric:4.3.1' --> 'org.robolectric:shadows-framework:4.3.1' --> 'androidx.test:monitor:1.2.0'
    
       > Could not resolve com.google.guava:listenablefuture:1.0.
         Required by:
             project :app > androidx.work:work-runtime:2.2.0
          > Cannot find a version of 'com.google.guava:listenablefuture' that satisfies the version constraints: 
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.work:work-runtime:2.2.0' --> 'com.google.guava:listenablefuture:1.0'
               Constraint path 'android-etalase-app:app:unspecified' --> 'com.google.guava:listenablefuture:{strictly 1.0}' because of the following reason: devDebugRuntimeClasspath uses version 1.0
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test.ext:truth:1.0.0' --> 'com.google.guava:guava:27.0.1-jre' --> 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
    
       > Could not resolve com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava.
         Required by:
             project :app > androidx.test.ext:truth:1.0.0 > com.google.guava:guava:27.0.1-jre
          > Cannot find a version of 'com.google.guava:listenablefuture' that satisfies the version constraints: 
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.work:work-runtime:2.2.0' --> 'com.google.guava:listenablefuture:1.0'
               Constraint path 'android-etalase-app:app:unspecified' --> 'com.google.guava:listenablefuture:{strictly 1.0}' because of the following reason: devDebugRuntimeClasspath uses version 1.0
               Dependency path 'android-etalase-app:app:unspecified' --> 'androidx.test.ext:truth:1.0.0' --> 'com.google.guava:guava:27.0.1-jre' --> 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava'
    
    0 讨论(0)
提交回复
热议问题