我从本机0.55.4开始创建了一个项目,现在我计划升级到最新版本(0.59.2)。
使用iOS
我已成功更新。不幸的是,Android我升级失败。 Android
似乎需要进行许多更改。 gradle
成功同步,并且构建成功,但是当我键入react-native run-android
时。并且在将应用程序安装到移动设备或仿真器后,显示“无法连接到开发服务器”。
以下是我更改的内容: gradle-wrapper.properties -distributionUrl = https://services.gradle.org/distributions/gradle-4.10.1-all.zip
build.gradle -依赖项{classpath'com.android.tools.build:gradle:3.3.1'} -构建工具版本为28.0.3
app / build.gradle
packagingOptions {
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libc++_shared.so'
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
我还按照0.59.2更新了metro.config.js和babel.config.js
旧环境 “ react”:“ 16.3.1”, “ react-native”:“ 0.55.4”, 新的环境 “ react”:“ 16.8.3”, “ react-native”:“ 0.59.2”,
我以为我错过了android方面的东西。请纠正我。
更新的答案。
转到AndroidManifest.xml,然后添加
android:usesCleartextTraffic =“ true”
内部应用标签。一切正常。 usesCleartextTraffic 是什么意思?
答案 0 :(得分:0)
这表示接受http请求(通常不加密文本)。 在Android 9.0(API 28)之后,默认情况下 HTTP 请求被禁止。出于安全原因,请求使用 HTTPS 。因此,如果要使用http连接默认情况下,您可以将此属性设置为“ true”。
RN向开发服务器发送http请求,因此您可以将此属性设置为“ true”以避免检查。
并将目标SDK设置为28以下或添加配置文件以包含域也可以做到这一点。