web-dev-qa-db-ja.com

バージョンの制約を満たす「com.Android.support:support-annotations」のバージョンが見つかりません

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'
}

プロガードルール:

-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

私は通常APKをそれなしで生成できるので、問題はProguardから来ていると仮定しました。また、プロジェクトを同期する前に異なる「com.Android.support:support-annotations:xx」実装を追加しようとしましたが、問題は解決しません。

プロジェクトはgitリポジトリからインポートされます。

35
Pensée Absurde

問題は解決しました!ライブラリにimplementation 'com.Android.support:support-annotations:28.0.0'を追加する必要がありました。メッセージの警告はそれを行うのに十分に明確でしたが、ライブラリの依存関係を変更することは考えていませんでした。

61
Pensée Absurde

同様のエラーメッセージが表示され、次の行を削除して解決しました。

androidTestImplementation 'androidx.annotation:annotation:1.1.0'
1
CodeSmith

私のために働いたのは、他の多くのオプションがあるにもかかわらず、システムが指定された依存関係パスを使用するように強制することにより、この競合を解決する構成を追加することでした。

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

      force('com.Android.support:support-annotations:26.1.0')
  }
  transitive = true
}
1
Rachid Rajjys