开发者问题收集

问题“无法获得未知的属性'合并'com.android.android.build.gradle.internal.api.appi.application.applicationvariantimpl。”

2019-04-03
4450

我想通过命令“react-native run-android”构建 android 应用程序并得到失败

应用程序正在构建,但最后,我在命令控制台中得到这个

我已经重建了应用程序,重新启动了 PC 和 Android 设备,删除了 node_modueles 文件夹,但都对我没有任何帮助。

D:\Projects\Android\Partymaker>react-native run-android info 正在启动 JS 服务器... info 正在设备上构建和安装应用程序 (cd android && gradlew.bat app:installDebug)... 正在启动 Gradle 守护进程,1 个不兼容且 1 个已停止的守护进程无法重用,请使用 --status 了解详情

Configure project :app registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection) registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)

失败:构建失败,出现异常。

  • 其中: 脚本“D:\Projects\Android\Partymaker\node_modules\react-native\react.gradle”行:95

  • 出了什么问题: 配置项目“:app”时出现问题。

    无法获取类型对象的未知属性“mergeResourcesProvider” com.android.build.gradle.internal.api.ApplicationVariantImpl。

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获取更多日志输出。使用 --scan 运行以获取完整见解。

  • https://help.gradle.org

  • 获取更多帮助

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 5.0 不兼容。 使用“--warning-mode all”显示单个弃用警告。 请参阅 https://docs.gradle.org/4.10.2/userguide/command_line_interface.html#sec:command_line_warnings

2 分 0 秒内构建失败 错误无法在设备上安装应用,请阅读上面的错误以了解详情。 确保您已运行 Android 模拟器或已连接设备,并且已 设置 Android 开发环境: https://facebook.github.io/react-native/docs/getting-started.html error 命令失败:gradlew.bat app:installDebug

2个回答

我遇到了同样的问题,我能够像这样解决它:

通过编辑 android/build.gradle 修复 gradle 弃用警告

- task wrapper(type: Wrapper) {
+ wrapper {
     gradleVersion = '4.4'
-    distributionUrl = distributionUrl.replace("bin", "all")
+    distributionType = Wrapper.DistributionType.ALL
  }

更新 android/build.gradle 中的类路径

buildscript {
  ...
  dependancies {
      classpath 'com.android.tools.build:gradle:3.3.0'
  }
}

更新 android/gradle/wrapper/gradle-wrapper.properties 的 distributionUrl

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip

重新安装 node_modules

rm -rf ./node_modules
yarn

我应该提到,我还有一些来自一些自定义库的构建错误,我还没有解决。但希望这能帮到你。

Nate Bosscher
2019-04-05

此问题是由于 react-native 版本不匹配造成的 我假设你当时在 expo 上,然后你弹出到 react native 尝试删除 node_modules 将 package.json react native 版本更改为 0.57.* 然后 react-native run-android

Abanoub Istfanous
2019-04-08