javascript - React Native Android 构建,“错误:无法获取未知属性 'mergeResourcesProvider'”
问题描述
我已经用 RN 0.59.3 升级了我的应用程序,自从我在构建 Android 时收到错误消息以来。iOS 可以很好地构建应用程序。
安卓工作室
错误:无法为 com.android.build.gradle.internal.api.ApplicationVariantImpl 类型的对象获取未知属性“mergeResourcesProvider”。
安慰
error Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html
error Command failed: ./gradlew app:installSabdebugDebug
我尝试将 android/app/gralde/wrapper/gradle-wrapper.propeties 中的 distributionUrl 更改为
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
我将 build.gradle 依赖项升级到这些版本
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.2.0'
...
}
这是整个文档
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
minSdkVersion = 16
compileSdkVersion = 27
targetSdkVersion = 26
androidMapsUtilsVersion = "0.5+"
googlePlayServicesAuthVersion = "16.0.1"
}
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.2.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
我正在设置这些app/build.gradle
android {
compileSdkVersion safeExtGet('compileSdkVersion', 28)
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.0')
defaultConfig {
applicationId "com.myapp"
resValue "string", "build_config_package", "com.myapp"
minSdkVersion 18
multiDexEnabled true
targetSdkVersion 26
versionCode 24
versionName "1.3.5"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
...
我的 package.json
"dependencies": {
"babel-plugin-transform-remove-console": "^6.9.4",
"formik": "^1.3.1",
"lodash": "^4.17.10",
"moment": "^2.23.0",
"moment-timezone": "^0.5.21",
"native-base": "^2.8.1",
"react": "16.8.3",
"react-native": "0.59.3",
....
}
"devDependencies": {
"@babel/core": "^7.4.3",
"@babel/runtime": "^7.4.3",
"babel-jest": "^24.7.0",
"jest": "^24.7.0",
"metro-react-native-babel-preset": "^0.53.1",
"react-test-renderer": "16.8.3",
"run-script-os": "~1.0.5"
},
此外,我们正在使用脚本通过 run-script-os 构建应用程序的不同环境,但我不认为这是导致问题的原因。
我也遇到了无法找到 Android sdk 的错误,但我用 local.properties 解决了这个问题。
干杯!
解决方案
gradle-wrapper.properties:
变化中distributionUrl
至
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
并在根build.gradle
文件中将 gradle 类路径更改为:
classpath 'com.android.tools.build:gradle:3.3.0'
再次删除 node_modules
并npm install && react-native run-android。
推荐阅读
- c++ - Bjarne Stroustrup 书 - std_lib_facilities.h - 不起作用(未知类型名称)
- amazon-web-services - SOA 记录更改为使用 AWS 路由 53
- docker - Nginx with let's encrypt 在另一个 nginx 前面
- sql - 选择最近的行,其中 2 列包含相同的值
- react-native - React-native 如何在 Listview 中使用 radioButton
- c++ - 从 argv 创建参数字符串
- javascript - 从具有多个数组的状态中获取所有对象
- qt4 - QSS 样式表未完全应用于 QListWidget
- git - 私有 GIT 存储库是否可用于 Microsoft TFS?
- android - 如何将片段附加到上下文(以编程方式)?