使用 android studio 配置 React-Native 项目(构建 gradle)时出现错误。我想构建 gradle 脚本以便在我的应用程序中使用 firebase

Apo*_*har 4 android gradle react-native expo

我更新 android studio 和 gradle 版本后遇到了这个问题。这是我一步一步所做的:

首先我收到以下错误:

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

我检查了 stackoverflow,它说用“实现”更改“编译”可以解决问题,所以我就这样做了。

另一个问题是 Maven 已被弃用。所以我使用了maven-publish而不是maven。

现在我收到以下错误:

12:24 PM Gradle 同步失败:在 org.gradle.api.Project 类型的项目“:expo-application”上找不到参数 [build_a5ye7ixpcm9qfmol93kt3ucl1$_run_closure4@73b8042a] 的方法 uploadArchives()。(17 秒 537 毫秒)

在 build.gradle(:expo-application) 的这部分代码中:

uploadArchives {
  repositories {
    mavenDeployer {
      configuration = configurations.deployerJars
      repository(url: mavenLocal().url)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我对 android studio 或 java 不太熟悉。我只是使用 Android Studio 来配置 Android 的 React Native 应用程序。有人可以帮我解决这些问题吗..

谢谢

tba*_*tch 5

从Gradle 7.0开始,compile已被删除并取而代之api。当您更改compile为时implementation,您影响了库的传递属性。我不确定您在哪里读到“更改compile为”implementation是正确的答案,但事实并非如此。 api是更接近于编译的近似值。 这张图表给出了一个相当容易理解的解释。您应该更改implementationapi并确保您使用的是java-library插件而不是java插件。这应该允许 gradle 看到该UploadArchives方法。然而,这会引发一个新的问题。

从 Gradle 6.0 开始,UploadArchivesmaven插件一起被弃用。您应该考虑使用该maven-publish插件。这将确保您的构建在未来的 Gradle 版本中继续工作。

所以,总而言之,确保你的插件看起来像这样

  apply plugin: 'java-library'
  apply plugin: 'maven-publish'
Run Code Online (Sandbox Code Playgroud)

并更新您的代码以使用publishing而不是UploadArchives. 有关这方面的更多信息可以在此处的当前 Gradle 用户指南中找到。

或者,您可以将 gradle 版本降级到 7.0 之前的版本,并忽略所有弃用警告。这是你的选择。