GradleX icon indicating copy to clipboard operation
GradleX copied to clipboard

doAnalysisSo Variants 问题

Open AmnesiaR opened this issue 1 year ago • 2 comments

因为我的项Gradle版本低于8.1.1,引入远程插件的话会提示版本兼容问题。所以我按照你的代码手写了一份,发布到maven local,但是在项目中引入后sync时在doAnalysisSo报错variants 选择的问题,经过排查问题出在

configuration.forEach {
   ...
}

请问大佬遇到过此问题吗?是什么原因导致的?如果是插件和项目不兼容的话,在不升级项目Gradle版本的前提下需要从什么地方入手进行处理?

      - Unmatched attributes:
          - Provides attribute 'artifactType' with value 'android-symbol-with-package-name' but the consumer didn't ask for it
          - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'xxDebug' but the consumer didn't ask for it
          - Provides attribute 'default' with value 'xx' but the consumer didn't ask for it
          - Provides a library but the consumer didn't ask for it
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:119)
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:122)
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.select(AttributeMatchingVariantSelector.java:93)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultArtifactSet.select(DefaultArtifactSet.java:86)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.select(DefaultVisitedArtifactResults.java:57)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.selectLenient(DefaultVisitedArtifactResults.java:76)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration.java:129)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1516)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.visitContents(DefaultConfiguration.java:1503)
	at org.gradle.api.internal.file.AbstractFileCollection.getFiles(AbstractFileCollection.java:129)
	at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:175)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:506)
	at com.example.qhrplugin.base.GradleXPlugin.doAnalysisSo$lambda-5(GradleXPlugin.kt:117)   // 此行报错
	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:123)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
	at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:161)
	at com.example.qhrplugin.base.GradleXPlugin.doAnalysisSo(GradleXPlugin.kt:113)
	at com.example.qhrplugin.base.GradleXPlugin.apply$lambda-0(GradleXPlugin.kt:45)```

AmnesiaR avatar Dec 14 '23 02:12 AmnesiaR

有明确提示到代码行数的话,建议贴下代码,以及项目环境。 有限的信息推测是API兼容问题,搜一下对应版本的API,或者尝试通过variants.getVarintData().getxxx解决。 本质是通过GAV获取文件,然后解析。

yechaoa avatar Dec 16 '23 08:12 yechaoa

因为我的项Gradle版本低于8.1.1,引入远程插件的话会提示版本兼容问题。所以我按照你的代码手写了一份,发布到maven local,但是在项目中引入后sync时在doAnalysisSo报错variants 选择的问题,经过排查问题出在

configuration.forEach {
   ...
}

请问大佬遇到过此问题吗?是什么原因导致的?如果是插件和项目不兼容的话,在不升级项目Gradle版本的前提下需要从什么地方入手进行处理?

      - Unmatched attributes:
          - Provides attribute 'artifactType' with value 'android-symbol-with-package-name' but the consumer didn't ask for it
          - Provides attribute 'com.android.build.gradle.internal.attributes.VariantAttr' with value 'xxDebug' but the consumer didn't ask for it
          - Provides attribute 'default' with value 'xx' but the consumer didn't ask for it
          - Provides a library but the consumer didn't ask for it
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:119)
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.doSelect(AttributeMatchingVariantSelector.java:122)
	at org.gradle.api.internal.artifacts.transform.AttributeMatchingVariantSelector.select(AttributeMatchingVariantSelector.java:93)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultArtifactSet.select(DefaultArtifactSet.java:86)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.select(DefaultVisitedArtifactResults.java:57)
	at org.gradle.api.internal.artifacts.ivyservice.resolveengine.artifact.DefaultVisitedArtifactResults.selectLenient(DefaultVisitedArtifactResults.java:76)
	at org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration.select(DefaultLenientConfiguration.java:129)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1516)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.visitContents(DefaultConfiguration.java:1503)
	at org.gradle.api.internal.file.AbstractFileCollection.getFiles(AbstractFileCollection.java:129)
	at org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:175)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:506)
	at com.example.qhrplugin.base.GradleXPlugin.doAnalysisSo$lambda-5(GradleXPlugin.kt:117)   // 此行报错
	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:123)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:110)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
	at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
	at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:107)
	at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:161)
	at com.example.qhrplugin.base.GradleXPlugin.doAnalysisSo(GradleXPlugin.kt:113)
	at com.example.qhrplugin.base.GradleXPlugin.apply$lambda-0(GradleXPlugin.kt:45)```

遇到相同问题,请问有什么解决方案吗

shinyhui233 avatar Sep 29 '24 08:09 shinyhui233