将 kotlin 导入我的子模块时同步失败
Sync failed when import kotlin to my submodules
我尝试在我的子模块中导入 kotlin:
项目级别
...
buildscript {
ext.kotlin_version = '1.3.21'
repositories {
jcenter()
mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
...
模块级别
apply plugin: 'kotlin-android'
...
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
...
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
在我尝试同步后,出现了这个错误:
ERROR: Unable to resolve dependency for ':app@develop/compileClasspath': Could not resolve project :libraries:Foundation.
Show Details
Affected Modules: app
和堆栈跟踪:
Caused by: java.lang.NullPointerException
at com.google.common.collect.UsingToStringOrdering.compare(UsingToStringOrdering.java:33)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain$ExceptionHandler.handleException(DefaultDisambiguationRuleChain.java:99)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain$ExceptionHandler.handleException(DefaultDisambiguationRuleChain.java:87)
at org.gradle.internal.action.InstantiatingAction.execute(InstantiatingAction.java:44)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain.execute(DefaultDisambiguationRuleChain.java:75)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain.execute(DefaultDisambiguationRuleChain.java:38)
at org.gradle.api.internal.attributes.DefaultAttributesSchema$MergedSchema.disambiguate(DefaultAttributesSchema.java:183)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateWithAttribute(MultipleCandidateMatcher.java:215)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateWithRequestedAttributes(MultipleCandidateMatcher.java:202)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateCompatibleCandidates(MultipleCandidateMatcher.java:192)
at org.gradle.internal.component.model.MultipleCandidateMatcher.getMatches(MultipleCandidateMatcher.java:111)
at org.gradle.internal.component.model.ComponentAttributeMatcher.match(ComponentAttributeMatcher.java:123)
at org.gradle.api.internal.attributes.DefaultAttributesSchema$DefaultAttributeMatcher.matches(DefaultAttributesSchema.java:156)
at org.gradle.internal.component.model.AttributeConfigurationSelector.selectConfigurationUsingAttributeMatching(AttributeConfigurationSelector.java:40)
at org.gradle.internal.component.model.LocalComponentDependencyMetadata.selectConfigurations(LocalComponentDependencyMetadata.java:117)
at org.gradle.internal.component.local.model.DslOriginDependencyMetadataWrapper.selectConfigurations(DslOriginDependencyMetadataWrapper.java:60)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:166)
... 105 more
我的gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
找了很多都没有找到问题的原因和解决办法。有没有人遇到和我一样的问题??
我找到了解决方案,但我不知道为什么...
在我的基础模块中
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
在我的应用程序模块中
buildTypes {
...
test {
...
matchingFallbacks = ['release', 'debug']
}
}
在我删除 matchingFallbacks 中的 'debug' 或基础模块中的 kotlin-plugin 后,它工作正常。
我尝试在我的子模块中导入 kotlin:
项目级别
...
buildscript {
ext.kotlin_version = '1.3.21'
repositories {
jcenter()
mavenCentral()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
...
模块级别
apply plugin: 'kotlin-android'
...
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
...
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
在我尝试同步后,出现了这个错误:
ERROR: Unable to resolve dependency for ':app@develop/compileClasspath': Could not resolve project :libraries:Foundation.
Show Details
Affected Modules: app
和堆栈跟踪:
Caused by: java.lang.NullPointerException
at com.google.common.collect.UsingToStringOrdering.compare(UsingToStringOrdering.java:33)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain$ExceptionHandler.handleException(DefaultDisambiguationRuleChain.java:99)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain$ExceptionHandler.handleException(DefaultDisambiguationRuleChain.java:87)
at org.gradle.internal.action.InstantiatingAction.execute(InstantiatingAction.java:44)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain.execute(DefaultDisambiguationRuleChain.java:75)
at org.gradle.api.internal.attributes.DefaultDisambiguationRuleChain.execute(DefaultDisambiguationRuleChain.java:38)
at org.gradle.api.internal.attributes.DefaultAttributesSchema$MergedSchema.disambiguate(DefaultAttributesSchema.java:183)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateWithAttribute(MultipleCandidateMatcher.java:215)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateWithRequestedAttributes(MultipleCandidateMatcher.java:202)
at org.gradle.internal.component.model.MultipleCandidateMatcher.disambiguateCompatibleCandidates(MultipleCandidateMatcher.java:192)
at org.gradle.internal.component.model.MultipleCandidateMatcher.getMatches(MultipleCandidateMatcher.java:111)
at org.gradle.internal.component.model.ComponentAttributeMatcher.match(ComponentAttributeMatcher.java:123)
at org.gradle.api.internal.attributes.DefaultAttributesSchema$DefaultAttributeMatcher.matches(DefaultAttributesSchema.java:156)
at org.gradle.internal.component.model.AttributeConfigurationSelector.selectConfigurationUsingAttributeMatching(AttributeConfigurationSelector.java:40)
at org.gradle.internal.component.model.LocalComponentDependencyMetadata.selectConfigurations(LocalComponentDependencyMetadata.java:117)
at org.gradle.internal.component.local.model.DslOriginDependencyMetadataWrapper.selectConfigurations(DslOriginDependencyMetadataWrapper.java:60)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:166)
... 105 more
我的gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
找了很多都没有找到问题的原因和解决办法。有没有人遇到和我一样的问题??
我找到了解决方案,但我不知道为什么...
在我的基础模块中
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
在我的应用程序模块中
buildTypes {
...
test {
...
matchingFallbacks = ['release', 'debug']
}
}
在我删除 matchingFallbacks 中的 'debug' 或基础模块中的 kotlin-plugin 后,它工作正常。