代码之家  ›  专栏  ›  技术社区  ›  MbaiMburu

org.gradle.internal.component.ambiguousVariantSelectException异常

  •  0
  • MbaiMburu  · 技术社区  · 7 年前

    在androidstudio项目中使用gradle项目作为库之后,我得到了含糊不清的variantselectionexception异常

    这是整个日志文件,我将库模块命名为library

    org.gradle.internal.component.AmbiguousVariantSelectionException:项目:库的多个变体与使用者属性匹配: -配置':libraryy:debugApiElements'变体android aidl: -找到artifactType'android aidl',但不是必需的。 -找到com.android.build.api.attributes.VariantAttr“debug”,但不是必需的。 -配置':libraryy:debugApiElements'变体android类: -必需的com.android.build.api.attributes.BuildTypeAttr“debug”并找到兼容值“debug”。 -找到com.android.build.api.attributes.VariantAttr“debug”,但不是必需的。 -配置':libraryy:debugApiElements'变体android清单: -必需的com.android.build.api.attributes.BuildTypeAttr“debug”并找到兼容值“debug”。 -找到com.android.build.api.attributes.VariantAttr“debug”,但不是必需的。 -必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr'Aar',并找到兼容值'Aar'。 -必需的org.gradle.usage'java api',并找到兼容的值'java api'。 -配置':libraryy:debugApiElements'变体android renderscript: -找到artifactType“android renderscript”,但不是必需的。 -找到com.android.build.api.attributes.VariantAttr“debug”,但不是必需的。 -必需的com.android.build.gradle.internal.dependency.AndroidTypeAttr'Aar',并找到兼容值'Aar'。 -配置':libraryy:debugApiElements'变体jar: -找到artifactType“jar”,但不是必需的。 -找到com.android.build.api.attributes.VariantAttr“debug”,但不是必需的。 -必需的org.gradle.usage'java api',并找到兼容的值'java api'。 位于org.gradle.api.internal.artifacts.transform.DefaultArtifactTransforms$AttributeMatchingVariantSelector.doSelect(DefaultArtifactTransforms)。java:104) 在org.gradle.api.internal.artifacts.transform.DefaultArtifactTransforms$AttributeMatchingVariantSelector.select(DefaultArtifactTransforms)中。java:89) 在org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultArtifactSet.select(DefaultArtifactSet。java:126) 在org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.select(DefaultVisitedArtifactResults)中。java:48) 位于org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration)。java:112) 位于org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration)。java:101) 位于org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingConfigurationResolver$ErrorHandlingResolvedConfiguration.getResolvedArtifacts(ErrorHandlingConfigurationResolver)。java:296) 在sun.reflect.GeneratedMethodAccessor226.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。java:43) 在java.lang.reflect.Method.invoke(方法。java:498) 在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod。java:325) 位于org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite.getProperty(GetEffectivePojoPropertySite)。java:64) 位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite。java:296) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl。java:43) 在org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod。java:93) 在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod。java:325) 在org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass。java:294) 在groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl。java:1022) 在groovy.lang.Closure.call(Closure。java:430) 在org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction。java:71) 在org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil。java:160) 在org.gradle.util.ConfigureUtil.configure(ConfigureUtil。java:106) 在org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil。java:123) 位于org.gradle.internal.ImmutableActionSet$CompositeSet.execute(ImmutableActionSet。java:196) 在org.gradle.internal.MutableActionSet.execute(MutableActionSet。java:35) 位于org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection)。java:204) 在org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection。java:198) 在com.android.build.gradle.AppExtension.addVariant(AppExtension。java:79) 在com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory。java:132) 在com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin。java:760) 在com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin。java:746) 在com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin。java:652) 在com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin。java:648) 在org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch。java:91) 在org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch。java:80) 在org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch。java:230) 在org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch。java:149) 在org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast。java:140) 在org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter。java:93) 在org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator。java:70) 在org.gradle.configuration.project.LifecycleProjectEvaluator.access$100(LifecycleProjectEvaluator。java:34) 位于org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor。java:336) 位于org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor。java:328) 在org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor。java:199) 在org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator。java:50) 在org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject。java:666) 在org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator。java:35) 位于org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator)。java:62) 在org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer。java:38) 在org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher。java:249) 位于org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor。java:328) 在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor。java:110) 在org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher。java:126) 在org.gradle.initialization.DefaultGradleLauncher.getConfiguredBuild(DefaultGradleLauncher。java:104) 在org.gradle.internal.invocation.GradleBuildController$2.call(GradleBuildController。java:87) 位于org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService。java:152) 位于org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController)。java:100) 位于org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner)。java:64) 在org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner。java:35) 在org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner。java:35) 位于org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor。java:336) 位于org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor。java:328) 在org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor。java:199) 在org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor。java:110) 在org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter。java:47) 在org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter。java:39) 在org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter。java:25) 位于org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter。java:80) 位于org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter。java:53) 在org.gradle.tooling.internal.provider.serviceSetupBuildActionExecuter.execute(serviceSetupBuildActionExecuter。java:32) 在org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter。java:43) 在org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter。java:30) 位于org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter。java:59) 位于org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter。java:45) 位于org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter。java:30) 位于org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild。java:67) 在org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly。java:36) 位于org.gradle.launcher.daemon.server.api.DaemonCommandExecution.procedue(DaemonCommandExecution)。java:122) 位于org.gradle.launcher.daemon.server.api.DaemonCommandExecution.procedue(DaemonCommandExecution)。java:122) 在org.gradle.launcher.daemon.server.exec.requestStopIfSingleUsedDemon.execute(requestStopIfSingleUsedDemon。java:34) 在org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput。java:74) 在org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput。java:72) 在org.gradle.util.Swapper.swap(Swapper。java:38) 在org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput。java:72) 位于org.gradle.launcher.daemon.server.api.DaemonCommandExecution.procedue(DaemonCommandExecution)。java:122) 位于org.gradle.launcher.daemon.server.api.DaemonCommandExecution.procedue(DaemonCommandExecution)。java:122) 在org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient。java:62) 在org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly。java:36) 位于org.gradle.launcher.daemon.server.api.DaemonCommandExecution.procedue(DaemonCommandExecution)。java:122) 在org.gradle.launcher.daemon.server.daemonstatecordinator$1.run(daemonstatecordinator。java:295) 在org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy。java:63) 在org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl。java:46) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor。java:1142) 在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor。java:617) 位于org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl。java:55) 在java.lang.Thread.run(线程。java:745)

    以及build.gradle脚本

    实现文件树(包括:[' .jar'],dir:'libs') androidTestImplementation('com.android.support.test。espresso:espresso-core:2.2.2', { }) 实现文件树(包括:[' 实现com.android。support:appcompat-v7:26.1.0' 实现com.android。support:design:26.+' 实现com.android.support.constraint:constraint-layout:1.0.2' 实现'com.squareup.2:retrofit:2.3.0' 实现com.google.code。gson:gson:2.8.2' 实现io。reactivex:rxjava:1.1.6' 实现com.squareup。okhttp:okhttp:2.7.2' 实施共享-codec:commons-codec:1.3' 实现com.github。siyamed:android-shape-imageview:0.9.+@aar' 实现'com.google。firebase:firebase-core:15.0.2' 实现'com.google。firebase:firebase-database:16.0.1' 实现com.firebaseui:firebase-ui:4.1.0' 实现org.apache。commons:commons-lang3:3.6' 实现com.android。volley:volley:1.1.0' //实现'com.github.deano2390:MaterialShowcaseView:1.2.0' 实现'com.github.amlcurran.showcaseview:library:5.4.3' 实现com.android。support:multidex:1.0.3' “试验实施”junit:junit:4.12' 实现com.android。support:recyclerview-v7:26.1.0' 实现com.google.android。gms:play-services-maps:15.0.1' 实现com.android。support:cardview-v7:26.1.0' //执行委员会。applandeo:material-calendar-view:1.4.0' 实现('com.crashlytics.sdk。android:crashlytics:2.9.1@aar') { 可传递=真 } }

    apply plugin:'com.android.application'

    1 回复  |  直到 7 年前
        1
  •  1
  •   Sam    7 年前

    似乎不止一个模块名为libraryy,末尾有两个y。 显示项目文件夹结构的屏幕截图并发布您的 build.gradle 文件,当然,如果你正在使用的口味显示,以及。

    为了找到你所有的推荐人,你需要

    • 检查可传递的依赖项(也称为依赖项的依赖项),您可以通过运行gradle dependency命令查看树来检查这一点
    • 最后,检查一下你的缓存是否有问题。你可以用两种方法来做。

    1) 您可以查看iml文件和idea特定文件的内容,查看是否添加了两次,或者 2) 您可以简单地删除所有的“构建”目录、iml文件和idea文件。然后重新导入项目。您也可以简单地执行文件操作->使缓存无效,然后重新启动以查看是否可以解决此问题。

    在某个地方你有一个指向这个库的额外指针,所以首先检查这些位置,如果你仍然没有找到它,那么我会使缓存无效,如果这不起作用,那么删除所有生成的目录并再次从gradle导入,但是如果你在其中一个地方没有找到它,我会感到惊讶。

    推荐文章