找不到满足版本约束的“com.android.support:support-annotations”版本

Posted

技术标签:

【中文标题】找不到满足版本约束的“com.android.support:support-annotations”版本【英文标题】:Cannot find a version of 'com.android.support:support-annotations' that satisfies the version constraints 【发布时间】:2019-03-26 09:31:24 【问题描述】:

当我想使用 Proguard 规则生成签名的 APK(发布)时,我收到了以下错误消息:

找不到满足版本限制的“com.android.support:support-annotations”版本: 依赖路径 'Transition:library:unspecified' --> 'com.android.support.test:runner:1.0.2' --> 'com.android.support:support-annotations:27.1.1' 约束路径 'Transition:library:unspecified' --> 'com.android.support:support-annotations' 严格来说是 '26.1.0' 因为以下原因:debugRuntimeClasspath 使用版本 26.1.0 ...

Gradle(应用程序):

android 
compileSdkVersion 28

defaultConfig         
    minSdkVersion 21
    targetSdkVersion 26      


buildTypes 

    release 
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-
android.txt'),'proguard-rules.pro'
    



compileOptions 
    targetCompatibility 1.8
    sourceCompatibility 1.8




dependencies 
implementation fileTree(include: ['*.jar'], dir: 'libs')
//noinspection GradleCompatible
implementation 'com.android.support:support-compat:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-annotations:28.0.0'
//noinspection GradleCompatible
implementation 'com.android.support:cardview-v7:28.0.0'
//noinspection GradleCompatible
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.support:appcompat-v7'
api 'com.google.android.gms:play-services:12.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation 'com.android.support:support-annotations:28.0.0'
implementation project(':library')
implementation 'com.jpardogo.materialtabstrip:library:1.1.1'
implementation group: 'com.jcraft', name: 'jsch', version: '0.1.54'
implementation 'com.google.guava:guava:26.0-android'
// glide
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.googlecode.json-simple:json-simple:1.1'
implementation ('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2')
    exclude module: 'support-v4'

Gradle(项目):

buildscript 

repositories 
    google()
    jcenter()


dependencies 
    classpath 'com.android.tools.build:gradle:3.3.0-alpha13'

    


allprojects 
    repositories 
        google()
        jcenter()
    


task clean(type: Delete) 
    delete rootProject.buildDir

Gradle(库):

apply plugin: 'com.android.library'

android 
    compileSdkVersion 26



defaultConfig 
    minSdkVersion 21
    targetSdkVersion 22
    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(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

Proguard 规则:

-keep class com.jcraft.jsch.jce.*
-keep class * extends com.jcraft.jsch.KeyExchange
-keep class com.jcraft.jsch.**
-keep class com.jcraft.jzlib.**
-keep class com.jcraft.jsch.jce.*
-keep class com.jcraft.jzlib.ZStream
-keep class com.jcraft.jsch.Compression
-keep class org.ietf.jgss.*
-dontwarn org.ietf.jgss.**
-dontwarn com.jcraft.jsch.**

-keepattributes Signature, InnerClasses

-keepclassmembers,allowshrinking,allowobfuscation interface * 
    @retrofit2.http.* <methods>;


-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

-dontwarn javax.annotation.**

-dontwarn kotlin.Unit   

-dontwarn afu.org.checkerframework.**
-dontwarn org.checkerframework.**
-dontwarn com.google.errorprone.**
-dontwarn sun.misc.Unsafe
-dontwarn java.lang.ClassValue

我认为问题来自 Proguard,因为我通常可以在没有它的情况下生成 APK。 我还尝试在同步项目之前添加不同的 'com.android.support:support-annotations:xx' 实现,但问题仍然存在。

项目是从 git repo 导入的。

【问题讨论】:

请发布您的主要 gradle 文件。 我在 Gradle 文件中添加了更多细节。 这是应用级别的 gradle。主模块下还有一个 build.gradle。 其实还有2个build.gradle文件,我相应地编辑了帖子。 【参考方案1】:

问题解决了!我需要添加

implementation 'com.android.support:support-annotations:28.0.0'

android/app/build.gradle 中的依赖项 在我的图书馆里。消息警告足够明确,但我没有考虑修改库依赖项。

【讨论】:

我还必须将*** gradle.build 中的 supportLibVersion 更新为:supportLibVersion = "28.0.0" 请编辑答案以解释这包含哪些文件 是的,它可以在android/app/build.gradle的依赖项下添加它【参考方案2】:

对我有用的是添加配置来解决此冲突,尽管有许多其他选项,但强制系统使用指定的依赖路径。

configurations.all 
  resolutionStrategy 
      cacheDynamicVersionsFor(0, 'seconds')
      cacheChangingModulesFor(0, 'seconds')

      force('com.android.support:support-annotations:26.1.0')
  
  transitive = true

【讨论】:

【参考方案3】:

我有一个类似的错误消息,并通过删除此行来解决它:

androidTestImplementation 'androidx.annotation:annotation:1.1.0'

【讨论】:

【参考方案4】:

尝试添加

repositories 
    maven  url 'https://maven.google.com' 

在您的项目级 gradle 中。

【讨论】:

它没有用 :( 你能至少解释一下为什么它必须解决这个问题吗? 我觉得jcenter()更好

以上是关于找不到满足版本约束的“com.android.support:support-annotations”版本的主要内容,如果未能解决你的问题,请参考以下文章

找不到满足要求的版本 **tusclient**

找不到满足 SoundRecognition 要求的版本

pip install - 找不到满足要求的版本

找不到满足要求 tensorflow 的版本(来自版本:)没有为 tensorflow 找到匹配的分布

时间模块:找不到满足要求的版本

找不到满足 Flask 要求的版本