【问题标题】:Could not determine the dependencies of task ':app:lintVitalRelease'. Can't generate signed APK无法确定任务 ':app:lintVitalRelease' 的依赖关系。无法生成签名的 APK
【发布时间】:2021-11-20 00:59:46
【问题描述】:

最近我在当前的 java 项目中添加了一些 kotlin 活动和一个库项目。 我可以毫无问题地运行项目。 clean - build - rebuild - run 一切正常。

生成签名 APK 时出现问题。 我收到以下错误:

Could not determine the dependencies of task ':app:lintVitalRelease'.
> Could not resolve all artifacts for configuration ':app:buildCompileClasspath'.
   > Could not resolve project :my_library.
     Required by:
         project :app
      > No matching variant of project :my_library was found. The consumer was configured to find an API of a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build', attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm' but:
          - Variant 'debugApiElements' capability My_project:my_library:unspecified declares an API of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'
          - Variant 'debugRuntimeElements' capability My_project:my_library:unspecified declares a runtime of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'
          - Variant 'debugTestApiElements' capability My_project:my_library:unspecified declares an API of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debugTest' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'
          - Variant 'debugTestRuntimeElements' capability My_project:my_library:unspecified declares a runtime of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debugTest' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'
          - Variant 'releaseApiElements' capability My_project:my_library:unspecified declares an API of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'
          - Variant 'releaseRuntimeElements' capability My_project:my_library:unspecified declares a runtime of a component, as well as attribute 'org.jetbrains.kotlin.platform.type' with value 'androidJvm':
              - Incompatible because this component declares a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'release' and the consumer needed a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'build'


gradle file in project level :

    buildscript {
    ext.kotlin_version = '1.5.0'
    ext {
        projectMinSdkVersion = 16      // 15 android 4.0.3 for release
        projectTargetSdkVersion = 30   //23 requires permission requests , 22 for release
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.3'
//        classpath 'com.android.tools.build:gradle:4.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
//        classpath 'com.google.gms:google-services:4.3.4'//
        classpath 'com.google.gms:google-services:4.3.10'//
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' //
    }

}
//plugins {
//    id 'nebula.lint' version '9.3.4'
//}
allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
//        maven {
  //          url "https://maven.google.com" // Google's Maven repository
    //    }
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:deprecation"
        }

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

库级别的插件:

    apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

应用级别的插件:

    apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

有什么想法吗?

【问题讨论】:

    标签: android kotlin gradle apk lint


    【解决方案1】:

    感谢@Fabio,我找到了解决方案。 问题出在buildTypes 结构中。所以,在应用程序级别我有releasebuild,但在库级别我有releasedebug

    我将库级别的 buildTypes 更改为与应用级别相同:

    buildTypes {
        release {
            // minifyEnabled false
            // proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    
        build {
            //   minifyEnabled false
            //   proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    

    因此,如果需要,我建议从每个构建中的应用级别和注释行复制它。

    【讨论】:

    • 我需要在应用程序上从库中获得不同的构建变体,但似乎无法找到使其工作的方法。
    猜你喜欢
    • 2020-07-11
    • 2020-09-17
    • 2020-10-04
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多