Gradle - Null提取的文件夹用于工件: ResolvedArtifact

21

我在 Gradle Android 项目中的模块 build.gradle 文件中有以下行:

dependencies {
 // a lot of dependencies
 implementation 'org.tensorflow:tensorflow-lite-select-tf-ops:0.0.0-nightly-SNAPSHOT'
}

并且这会导致Gradle构建失败,出现以下错误

Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=org.tensorflow:tensorflow-lite-select-tf-ops:0.0.0-nightly-SNAPSHOT:20210331.060351-75, variantName=null, artifactFile=C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.tensorflow\tensorflow-lite-select-tf-ops\0.0.0-nightly-SNAPSHOT\b03a88bda4ad93e6fefe285f9ea303d28433eacc\tensorflow-lite-select-tf-ops-0.0.0-nightly-SNAPSHOT.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=C:\Users\USER\Desktop\Myapp2}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@5c4450a)

我在另一个项目中使用了相同的实现方式,并且它能够正常工作,但是在这个项目中,这个错误一直出现。

是什么原因导致了这个错误?我应该如何解决它?

8个回答

34

在添加 aar 文件时,我遇到了相同的错误。我更改了 implementation 路径,然后问题得以解决。

旧路径

implementation files('libs/test.aar')

新路径

implementation files('../libs/test.aar')


如何更改实现路径? - Bilal Ashraf
3
即使我更改了路径,仍然出现相同的错误。 - Pragya Singla
1
对我来说情况恰好相反,"旧路径"是新的,而"新路径"则是我之前使用的路径,导致出现了错误。 - jobernas
如果您要将依赖项添加到模块中,新路径可能更像是 implementation files('../modulenamehere/libs/test/aar') - straya

27

在我的情况下,我必须在gradle.properties中增加RAM的数量到4096:

org.gradle.jvmargs=-Xmx4096M

之后该项目同步正确。


8

当我添加unit-ads.aar时,出现了错误。我在我的代码中进行更改后,它对我起作用了。

旧代码

implementation files('../libs/unity-ads.aar')

新代码

implementation files('libs/unity-ads.aar')

1

你必须仔细检查路径,例如:

implementation(files("./src/libs/myfile.aar")) 

或者

implementation files("./src/libs/myfile.aar")

1

在我的情况下,我需要进入等效的文件夹:

C:\Users\USER.gradle\caches\modules-2\files-2.1\org.tensorflow\tensorflow-lite-select-tf-ops

然后删除它,再尝试同步一次,就可以了。


0

嗯,你可以这样更明确。

implementation files("$rootProject.projectDir/libs/test.aar")

0
当我将arr/jar导入AS时,遇到了这个问题。我的方法是将“项目”视图切换到“项目”模式(而不是“Android”模式),然后将aar/jar添加到libs文件夹(或任何文件夹)。

dotrinh


0
在我的情况下,当项目从Android迁移到AndroidX后,会生成一个Artifact错误。
错误是什么。
Null extracted folder for artifact: ResolvedArtifact(componentIdentifier=androidx.activity:activity:1.8.0, variantName=null, artifactFile=/home/mittal/.gradle/caches/modules-2/files-2.1/androidx.activity/activity/1.8.0/4266e2118d565daa20212d1726e11f41e1a4d0ca/activity-1.8.0.aar, extractedFolder=null, dependencyType=ANDROID, isWrappedModule=false, buildMapping={__current_build__=/home/mittal/StudioProjects/android/android-sdk}, mavenCoordinatesCache=com.android.build.gradle.internal.ide.dependencies.MavenCoordinatesCacheBuildService$Inject@6fbb61c0)

从材料依赖中排除活动库解决了错误。
    implementation ('com.google.android.material:material:1.10.0') {
    exclude group: 'androidx.activity', module: 'activity'
}

所以,如果你遇到了artifact错误,那么请检查错误中提到的库,并尝试移除该库,这可能会帮助你解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接