React Native遇见的几个坑
Posted 清箫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native遇见的几个坑相关的知识,希望对你有一定的参考价值。
1. 环境变量配置
解决办法:配置android_HOME,和JAVA_HOME。安装Android SDK,并安装Build Tool 23.0.1,最好把所有版本装上,因为将来使用的插件可能依赖的版本是不一样的。
2. 执行cd android && ./gradlew assembleRelease任务错误
* What went wrong:
Execution failed for task ':app:bundleReleaseJsAndAssets'.
> A problem occurred starting process 'command 'node''
这个错误的可能原因是gradle deamon的缓存问题,关掉cradle deamon,重新再执行一次就可以解决。
$ ./gradlew --stop
3. Dev窗口出不来
解决办法:进入android手机的安全中心,设置剁手记的权限,允许悬窗。
4. 如果报这个错:could not get batchedbridge, make sure your bundle is packaged correctly
解决办法:先看看端口喝IP是否正确;如果端口和IP都正确,再试试clean project;如果clean project不行,试试这个配置,在packege.json文件中加入:
"scripts":
"start": "node node_modules/react-native/local-cli/cli.js start",
"bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/"
,
注意红色这行,尤其是双减号,而且必须是英文的减号,不能是中文的减号,保险起见,最好是自己手动在英文输入法下改一下。
5. 安装错误: Gradle 的编译版本过高, 不兼容部分5.0+手机, 需要降低版本为 1.3.
Installing APK 'app-debug.apk' on 'HUAWEI GRA-TL00 - 5.0.1' for app:debug
Error while uploading app-debug.apk : Unknown failure ([CDS]close[0])
使用AndroidStudio安装的时候,IDE提供了app运行时需要的权限,所以直接使用Debug就可以安装。而使用react-native run-android有这样的问题是因为没有获得权限,所以没法往真机上装应用。
有两种解决办法,一是降低gradle的build版本,改为1.2.3;另一种是升级你的React-Native至最新版本。
打开 React Native 的项目, 修改最外层工程的 build.gradle 配置, 降低 gradle 的 build 为1.2.3版本.
buildscript
repositories
jcenter()
mavenLocal()
dependencies
classpath 'com.android.tools.build:gradle:1.2.3' // 修改1.2.3
classpath 'de.undercouch:gradle-download-task:2.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
这个时候还是会报错,需要重新设置 Gradle 的 Wrapper , 修改为2.2版本.
Gradle version 2.2 is required. Current version is 2.11
修改Gradle的Wrapper版本,需要修改android/griddle/wrapper/grade-wrapper.properties文件:
distributionUrl=https\\://services.gradle.org/distributions/gradle-2.2-all.zip
6. com.android.dex.DexException: Multiple dex files define
出现这个问题的原因是包的重复引用,意思就是在你自己的项目中引用了某个包,而被你作为library的项目也引用了同一个包,就会有这个问题。其实大部分是缓存的问题,只需要在Android Studio中通过Build -> clean project就可以解决。
7. ios9 HTTP请求不能正常使用
解决办法:
- 在Info.plist中添加NSAppTransportSecurity类型Dictionary。
- 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
8. 在小米手机上部署是遇到异常,com.android.ddmlib.InstallException: Failed to establish session
解决办法:go settings -> developer option -> close MIUI optimization。
9. Android中Attempt to redefine property *****
解决办法:这种情况是因为在某个元素上某个属性被使用了两次,删除一个即可。
以上是关于React Native遇见的几个坑的主要内容,如果未能解决你的问题,请参考以下文章