【问题标题】:"Could not get unknown property 'mergeResourcesProvider' for object of type com.android.build.gradle.internal.api.ApplicationVariantImpl."“无法为 com.android.build.gradle.internal.api.ApplicationVariantImpl 类型的对象获取未知属性 'mergeResourcesProvider'。”
【发布时间】:2019-03-22 11:58:12
【问题描述】:
{
  "name": "RNNProject",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.8.3",
    "react-native": "0.59.1",
    "react-native-navigation": "^2.15.0"
  },
  "devDependencies": {
    "@babel/core": "7.4.0",
    "@babel/runtime": "7.4.2",
    "babel-jest": "24.5.0",
    "jest": "24.5.0",
    "metro-react-native-babel-preset": "0.53.1",
    "react-test-renderer": "16.8.3"
  },
  "jest": {
    "preset": "react-native"
  }
}

graddle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

Build Graddle
 dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1' }

【问题讨论】:

标签: android react-native wix-react-native-navigation


【解决方案1】:

我通过以下步骤解决了这个问题:

  1. 在 android/gradle/wrapper/gradle-wrapper.properties 中将 distributionUrl 的值更改为 distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
  2. 在 android/build.gradle 中将 classpath 更改为 'com.android.tools.build:gradle:3.3.0'
  3. *可选(如果使用 Metro)在您的项目目录中创建 metro.config.js 并将 this 代码放入其中。
  4. *可选(如果使用 Metro)并确保 package.json "metro-react-native-babel-preset": "0.51.0" 中的 metro 版本在您的 packge.json 文件中。
  5. 删除 node_modules 文件夹并运行yarn install

【讨论】:

  • 也有这个问题。通过使用 gradle 3.3.0。 gradle 3.3.0 有一个错误。它无法解析 R 文件。所以我不能建立我的项目。我需要降级到 gradle 3.2.1。您对这种情况有什么建议吗?
  • @llch 您使用的是 react-native 还是 java?我不确定您升级 gradle 时是否存在错误,但您可以看到这个 [stackoverflow.com/questions/885009/… 可能对您有所帮助。
  • 这些步骤与 wix 文档不匹配。这些步骤导致了关于junit test的新错误。
  • @Omar,我正在使用 react-native。这是一个 react-native 项目,有原生的 android 视图,是用 Java 写的。我在整个项目中添加了 Android Studio 中的布局资源和自定义 java 类。
  • 我不知道确切的数字应该是什么一般修复。我的意思是我有 distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 并且已经遵循了这个rnfirebase.io/docs/v5.x.x/installation/android 并且仍然遇到类似的错误
【解决方案2】:

当您更新了 react native 版本但您的项目代码与 react native 版本不兼容时会发生这种情况。

因此您需要手动进行更改。您可以使用 react-native 升级助手来做到这一点

https://react-native-community.github.io/upgrade-helper

指定您当前的 react-native 版本以及您要更新的版本。你可以看到需要做的改变

附上截图寻求帮助

【讨论】:

  • 这对我没有帮助。
  • @praveenseela 您的评论对我也没有帮助。你介意更具体一点吗?
【解决方案3】:

按照以下步骤解决了我的问题

  1. 删除node_modulespackage-lock.json/yarn.lock
  2. gradle-wrapper.properties 中设置distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
  3. android/build.gradlebuildscript.dependencies下添加classpath(com.android.tools.build:gradle:3.4.0)。
  4. 运行yarn

由于 gradle 升级,您可能会遇到其他需要解决的错误。

【讨论】:

    【解决方案4】:

    Omar Al-Howeiti 的答案的补充。

    将 android:usesCleartextTraffic="true" 添加到 AndroidManifest.xml

      <application
          android:name=".MainApplication"
          android:label="@string/app_name"
          android:icon="@mipmap/ic_launcher"
          android:allowBackup="false"
          android:usesCleartextTraffic="true"
          android:theme="@style/AppTheme">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-15
      • 2020-01-02
      • 2020-04-15
      相关资源
      最近更新 更多