ReactNative开发-红屏\报错记录(持续更新...)

2019-01-16  本文已影响0人  lyichao

BUG描述

error: bundling failed: "Unable to resolve module react-native/Libraries/EventEmitter/EventEmitter

解决办法

1.先把node_modules目录下的react-native-root-siblings删除

2.再把根目录下package.json里的react-native-root-toast删除

3.然后重新安装npm install react-native-root-toast —save

1.进入/node_modules/react-native-root-siblings/lib/AppRegistryInjection.js

2.找到import EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter’;并修改为import EventEmitter from 'react-native/Libraries/EventEmitter/EventEmitter';


BUG描述

A problem occurred configuring project ':app'.

Could not resolve all dependencies for configuration ':app:_debugApk'.

Configuration with name 'default' not found.

解决办法

待补充


BUG描述

Execution failed for task ':app:installDebug'.

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.gs2000_rn signatures do not match the previously installed version; ignoring!

解决办法

删除当前链接设备中已有的项目


BUG描述

Execution failed for task ':app:prepareGs2000_rnReactNativeImagePickerUnspecifiedLibrary'.

Could not expand ZIP 'C:\Users\user\WebstormProjects\gs2000e_rn\node_modules\react-native-image-picker\android\build\outputs\aar\react-native-image-picker-release.aar'.

解决办法

网络问题,删除node-modules目录,重新执行npm install


BUG描述

Execution failed for task ':app:mergeDebugResources'.

Error: Cannot create directory C:\Users\user\WebstormProjects\union\union\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values

解决办法

删除项目根目录下\android\app的build文件夹即可


BUG描述

What went wrong:

Execution failed for task ':app:installRelease'.

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.union signatures do not match the previously installed version; ignoring!

解决办法

这是由于正在安装的APP与已安装再手机上的APP冲突引起的。直接删除手机上的APP即可。


BUG描述

*What went wrong:

A problem occurred configuring project ':app'.

SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

解决办法

项目缺少android环境变量,从其他原生android项目根目录下复制一份local.properties文件到RN项目的android目录下即可!


BUG描述

发布新的热更新版本时出现问题

Cannot find module 'metro-bundler/src/babelRegisterOnly

解决办法

根据问题查找得知是在高版本(0.52)以上在metro-bundler引用的路径错了。将node_modules\react-native-update\local-cli\lib\bundle.js的439行种的metro-bundler改成metro可成功运行![参考文献


BUG描述

SyntaxError:Strict mode does not allow function declarations in a lexically nested statement.

react-native的源码问题,在use strict严苛模式下,不允许如上的方式声明函数,会编译不通过。

解决办法

将react-native版本改成0.38.0或以上。


BUG描述

A problem occurred configuring root project 'one'.

Could not resolve all dependencies for configuration ':classpath'.

Could not download builder.jar (com.android.tools.build:builder:2.2.3)

Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/builder/2.2.3/builder-2.2.3.jar'.

Could not GET 'https://jcenter.bintray.com/com/android/tools/build/builder/2.2.3/builder-2.2.3.jar'.

Read timed out

解决办法

网络异常导致,保证网络的稳定下再次尝试基本可以解决


BUG描述

SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

解决办法

SDK路径无效!

1.可以使用Android Studio打开该项目的android项目,Android Studio就会自动校正

2.也可以打开local.properties文件,手动修改SDK路径


BUG描述

运行项目出现unable to load script from assets 'index.android.bundle',

unable to load script from assets 'index.android.bundle'错误

如图所示:

解决办法

1.进入项目的根目录

2.在终端输入

mkdir android/app/src/main/assets

3.继续在终端输入

React-native bundle --platform Android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res


BUG描述

Error: Validation error
    at /Users/lee/RNWorkStation/Demo/node_modules/react-native-update/local-cli/lib/api.js:8:27
    at Generator.next (<anonymous>)
    at step (/Users/lee/RNWorkStation/Demo/node_modules/react-native-update/local-cli/lib/api.js:82:191)
    at /Users/lee/RNWorkStation/Demo/node_modules/react-native-update/local-cli/lib/api.js:82:361
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:189:7)

解决办法

已经上传过同样版本号的ipa,重新上传需要修改版本号

[问题参考](https://github.com/reactnativecn/react-native-pushy/issues/143

  • android平台:修改根目录/android/app/build.gradle下的versionCodeversionName.例如:

    versionCode 2
    versionName "1.0.02"
    
  • ios平台:(待添加)

BUG描述

* What went wrong:
Could not resolve all files for configuration ':react-native-code-push:_internal_aapt2_binary'.
> Could not resolve com.android.tools.build:aapt2:3.2.1-4818971.
  Required by:
      project :react-native-code-push
   > Could not resolve com.android.tools.build:aapt2:3.2.1-4818971.
      > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom'.
         > Could not HEAD 'https://jcenter.bintray.com/com/android/tools/build/aapt2/3.2.1-4818971/aapt2-3.2.1-4818971.pom'.
            > Connect to 127.0.0.1:1087 [/127.0.0.1] failed: Connection refused (Connection refused)

解决办法

systemProp.https.proxyPort=``1080
systemProp.http.proxyHost=``127.0``.``0.1
systemProp.https.proxyHost=``127.0``.``0.1
systemProp.http.proxyPort=``1080

gradle.properties文件中使用了代理,删除gradle.properties中的代理以及计算机用户目录下的.gradle文件夹中的代理即可。

BUG描述

undefined is not a function (evaluating '_react.default.createContext(null)')
<unknown>
    Context.js:10:53
loadModuleImplementation
    require.js:174:12
guardedLoadModule
    require.js:126:36
_require
    require.js:110:20
<unknown>
    Provider.js:16:23
loadModuleImplementation
    require.js:174:12
guardedLoadModule
    require.js:126:36
_require
    require.js:110:20
<unknown>
    index.js:7:47
loadModuleImplementation
    require.js:174:12
guardedLoadModule
    require.js:126:36
_require
    require.js:110:20
<unknown>
    index.js:5
loadModuleImplementation
    require.js:174:12
guardedLoadModule
    require.js:126:36
_require
    require.js:110:20
<unknown>
    index.android.js:1:8
loadModuleImplementation
    require.js:174:12
guardedLoadModule
    require.js:119:45
_require
    require.js:110:20
global code

解决办法

这是由于react版本引起的,猜测可能是react版本与引入react-redux兼容性问题所导致。

引起BUG的环境:

"react": "16.0.0-alpha.12",
"react-native": "0.48.1",
"react-navigation": "1.0.0-beta.13",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"redux-thunk": "^2.3.0"

消除BUG的环境:(降低了react-redux版本)

"react": "16.0.0-alpha.12",
"react-native": "0.48.1",
"react-navigation": "1.0.0-beta.13",
"react-redux": "5.0.5",
"redux": "^4.0.1",
"redux-logger": "^3.0.6",
"redux-thunk": "^2.3.0"

BUG描述

执行react-native run-android后提示:

leedeMac-mini:RepairUnion lee$ react-native run-android
Scanning 688 folders for symlinks in /Users/lee/RNWorkStation/RepairUnion/node_modules (8ms)
Starting JS server...
Building and installing the app on the device (cd android && ./gradlew installDebug)...
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/android-setup.html

解决办法

1.配置全局环境变量

$ vim ~/.bash_profile
$ export ANDROID_HOME="/Users/[your name]/Library/Android/sdk/android-sdk_r24.2" # 以实际位置为准
$ source ~/.bash_profile # 立即生效

2.配置权限

如果配置环境后不可以运行 可能是无权限运行,在项目下运行 就是为android文件夹下的gradlew命令添加权限, **在根目录下执行 chmod 755 android/gradlew,本次就是用这个方法解决 **

3.项目中android目录下新建文件local.properties,并添加如下内容:

sdk.dir=/Users/[your name]/Library/Android/sdk/android-sdk_r24.2

BUG描述

Expected a component class, got [object Object].

解决办法

类名必须大写。检查引入的类是否有小写存在。

image.png image.png

BUG描述

com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to install all

解决办法

安装错误: Gradle 的编译版本过高, 不兼容部分5.0+手机, 需要降低版本为 1.3
有两种解决办法,一是降低gradle的build版本,改为1.2.3;另一种是升级你的React-Native至最新版本。
这里提供第一种方法:
1.打开 React Native 的项目, 修改最外层工程的 build.gradle 配置, 降低 gradle 的 build 为1.2.3版本
2.修改Gradle的Wrapper版本,需要修改android/griddle/wrapper/grade-wrapper.properties文件:

classpath 'com.android.tools.build:gradle:1.2.3' // 修改1.2.3
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2-all.zip

BUG描述

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ‘command ‘C:\Program Files\Java\jdk1.8.0_77\bin\java.exe” finished with non-zero exit value 2 

解决办法

1.Builde→rebuild project
2、如果第一步不行的话,那就是因为jar包重复了,检查我们的libs文件夹中是否有不使用的jar包,或者
重复的jar包,delete掉他们。


BUG描述

node_modules/react-native/Libraries/WebSocket/libfishhook.a'

解决办法

  • 1.在Xcode中找到RCTWebSocket.xcodeproj文件

    image.png
  • 2.找到Build Phases的Link Binary With Libraries, 点击减号去掉libfishhook.a引用

    image.png
  • 3.再加回去: 点加号把libfishhook.a引用

    image.png
  • 4.clean build 以及重新编译,OK解决!


BUG描述

":CFBundleIdentifier", Does Not Exist

解决办法

  • 1.打开Project settings
image.png
  • 2.点击Advanced按钮
image.png
  • 3.选择Custom,然后点击下拉选择Relative to Workspace

  • 4.修改Build/Products 为 build/Build/Products

image.png
  • 5.clean build 以及重新编译,OK解决!
上一篇下一篇

猜你喜欢

热点阅读