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请求不能正常使用

解决办法:

  1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary
  2. 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遇见的几个坑的主要内容,如果未能解决你的问题,请参考以下文章

学习React Native必看的几个开源项目

创建windows服务遇到的几个坑

ajax中回调的几个坑

Azure上的几个坑

微信小程序项目踩过的几个坑

安装mysql遇到的几个坑