构建 Gradle 错误无法获取未知属性“编译”

Meh*_*nak 74 android gradle react-native

我在运行 android 时对本机项目做出了反应,此错误显示

构建文件 'C:\dev\icnet_final\android\app\build.gradle' 行:213

评估项目“:app”时出现问题。

无法获取 org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer 类型的配置容器的未知属性“compile”。

小智 175

如果 Gradle 升级后发生这种情况,请替换compileimplementation

  • 请注意,对于具有 BUCK 配置的线路也必须执行此操作,即将 `configurations.compile` 更改为 `configurations.implementation`! (32认同)
  • 关于“configurations.implementation”:“不允许解析依赖配置“实现”,因为它被定义为“canBeResolved=false”。” (12认同)
  • 它应该是“runtimeClasspath”而不是“implementation”。 (10认同)
  • 我在哪里将编译更改为实现? (4认同)
  • @joaoricardotg 它位于“copyDownloadableDepsToLibs”任务中的“app/build.gradle”中 (3认同)

dis*_*ist 33

我收到此错误是因为我升级到了最新版本的 Gradle。我建议先不要这样做,直到 React Native 更新为可以使用它为止。

我将 Gradle 版本更改为android/build.gradle旧版本,并重新构建了项目。这个版本现在对我有用:

    classpath('com.android.tools.build:gradle:4.2.2')
Run Code Online (Sandbox Code Playgroud)

  • 所以从 gradle 7 降级到 4 是一个可以接受的答案:( (7认同)
  • 拯救了我的一天..这应该是最受接受的答案 (3认同)

علی*_*ودی 13

转到 /Users/...../Documents/projectName/android/app/build.gradle

实现替换编译

configurations.compile => configurations.implementation
Run Code Online (Sandbox Code Playgroud)


Cle*_*ral 6

假设 gradle 任务正在尝试编译一些 java 代码,您必须替换configurations.compileconfigurations.compileClasspath. 它指出了 JDK 编译 java 代码所需的依赖项列表。

此异常是从 gradle 7+ 抛出的,它不再识别属性“compile”,因为它需要根据情况使用“implementation”或“api” 。

如果.class文件已经可用,configurations.runtimeClasspath也应该可以工作,因为它指出了已经编译的 java 代码。